คำสั่ง yesNoCancel



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

11 มี.ค. 64 , 10:38:25
อ่าน 259 ครั้ง

แดนชัย

คำสั่ง yesNoCancel
« เมื่อ: 11 มี.ค. 64 , 10:38:25 »
เรียน ท่านอาจาจารย์ทุกท่านครับ
    ผมติดขัดการเขียนคำสั่ง YES NO CANCEL ครับ
    ผมสร้าง Msg ครับ ต้องการ กดปุ่ม YES พิมพ์ข้อมูล,หากกดปุ่ม NO ให้ Msg แจ้งขั้นตอนต่อไป,หากกดปุ่ม Cancel ยกเลิก(ปิด Msg)

 

11 มี.ค. 64 , 11:26:50
ตอบกลับ #1

Un

: คำสั่ง yesNoCancel
« ตอบกลับ #1 เมื่อ: 11 มี.ค. 64 , 11:26:50 »
แบบนี้รึป่าวครับ

โค๊ด: [Select]
Dim RetValue As Variant
        RetValue = MsgBox("...ใส่เนื้อหาที่แจ้ง", vbYesNoCancel + vbDefaultButton3, "Un")
        Select Case RetValue
                    Case 6 'yes
                            MsgBox "คำสั่งพิมพ์ข้อมูล", vbOKOnly, "Un"
                    Case 7 'No
                            MsgBox "ขั้นตอนต่อไป", vbOKOnly, "Un"
                    Case 2 'Cancle
                            ''''
        End Select

 

11 มี.ค. 64 , 11:58:10
ตอบกลับ #2

chai

: คำสั่ง yesNoCancel
« ตอบกลับ #2 เมื่อ: 11 มี.ค. 64 , 11:58:10 »
dim rst as String
rst=MsgBox("...ใส่เนื้อหาที่แจ้ง", vbYesNoCancel + vbDefaultButton3, "Un")
if rst=vbYes then
 'พิมพ์ข้อมูล
elseif rst=vbNo then
 ' msgbox
else
 Exit sub
end if

 

11 มี.ค. 64 , 15:24:59
ตอบกลับ #3

แดนชัย

: คำสั่ง yesNoCancel
« ตอบกลับ #3 เมื่อ: 11 มี.ค. 64 , 15:24:59 »
ขอบพระคุณมากครับ

 

13 มี.ค. 64 , 06:26:18
ตอบกลับ #4

แดนชัย

: คำสั่ง yesNoCancel
« ตอบกลับ #4 เมื่อ: 13 มี.ค. 64 , 06:26:18 »
อาจารย์ครับ..ถ้าเกิดเหตุการณ์มีเช่นนี้ 3 ครั้ง จะทำเช่นไรครับ
เช่น เหตุการณ์ 1    กด yes......พิมพ์
                             no.......ข้าม (แสดง Msg เข้าเหตุการณ์ที่ 2)
                             cancel....ยกเลิก
     เหตุการณ์ 2    กด yes......พิมพ์
                            no.......ข้าม (แสดง Msg เข้าเหตุการณ์ที่ 3)
                            cancel....ยกเลิก
     เหตุการณ์ 3    กด yes......พิมพ์
                            no.......ข้าม
                           cancel....ยกเลิก

 

13 มี.ค. 64 , 11:32:07
ตอบกลับ #5

Un

: คำสั่ง yesNoCancel
« ตอบกลับ #5 เมื่อ: 13 มี.ค. 64 , 11:32:07 »
มันก็แค่ เอาขั้นตอนทั้งหมดมาใส่ไว้ตรงที่เลือก

ผมขอเาของ อ.Chai มาใส่นะครับ ขั้นต่อไปอีก ลองทำดูครับ

โค๊ด: [Select]
Dim RetValue As Variant, rst As String
        RetValue = MsgBox("...ใส่เนื้อหาที่แจ้ง", vbYesNoCancel + vbDefaultButton3, "Un")
        Select Case RetValue
                    Case 6 'yes
                            MsgBox "คำสั่งพิมพ์ข้อมูล", vbOKOnly, "Un"
                    Case 7 'No
                    rst = MsgBox("...เนื้อหาที่แจ้งขั้นที่ 2", vbYesNoCancel + vbDefaultButton3, "Un")
                            If rst = vbYes Then
                                    MsgBox "คำสั่งพิมพ์ข้อมูล", vbOKOnly, "Un"
                            ElseIf rst = vbNo Then
                                    MsgBox "ทำขั้นตอนที่2", vbOKOnly, "Un"
                            Else
                                    Exit Sub
                            End If
                    Case 2 'Cancle
                            ''''
        End Select

 

13 มี.ค. 64 , 20:11:35
ตอบกลับ #6

แดนชัย

: คำสั่ง yesNoCancel
« ตอบกลับ #6 เมื่อ: 13 มี.ค. 64 , 20:11:35 »
อาจารย์ครับช่วยดูให้หน่อย...ไปไม่รอด...
กระบวนการ กด yes...ทุกขั้นตอน....เป็นไปตามขั้นตอนของ Case 6 'yes
กระบวนการ กด no...ทุกขั้นตอน....เป็นไปตามขั้นตอนของ Case 7 'No
กระบวนการ กด ขั้น 1 กด yes ขั้น 2 กด no...ขั้น 3 yes.....ไม่เป็นไปตามเงื่อนไข
กระบวนการ กด ขั้น 1 กด no ขั้น 2 กด yes...ขั้น 3 yes.....ไม่เป็นไปตามเงื่อนไข
*****สลับไปมาตามความต้องการ พิมพ์ข้อมูล และ ไม่ต้องการพิมพ์ข้อมูลครับ******
.......สุดท้ายของกระบวนการจะแสดง   DoCmd.OpenForm "certificate"
Private Sub Command668_Click()
Dim RetValue As Variant
        RetValue = MsgBox("ต้องการพิมพ์ใบแสดงตนเพื่อลงบัญชีทหารทหารกองเกิน (แบบ สด.44) ใช่หรือไม่", vbYesNoCancel + vbDefaultButton3, "โปรดยืนยัน")................ขั้นที่ 1
        Select Case RetValue
                    Case 6 'yes
                            DoCmd.OpenReport "SD44", acViewprint, , "[ID]=[Forms]![history].[ID]"
                             rst = MsgBox("ต้องการพิมพ์บัญชีทหารกองเกิน (แบบ สด.1) ใช่หรือไม่", vbYesNoCancel + vbDefaultButton3, "โปรดยืนยัน")............ขั้นที่2
                            DoCmd.OpenReport "SD1", acViewprint, , "[ID]=[Forms]![history].[ID]"
                            rst = MsgBox("ต้องการพิมพ์บัญชีทหารกองเกิน ด้านหลัง ( แบบ สด.1)ใช่หรือไม่", vbYesNoCancel + vbDefaultButton3, "โปรดยืนยัน")..............ขั้นที่3
                            DoCmd.OpenReport "SD11", acViewprint, , "[ID]=[Forms]![history].[ID]"
                            DoCmd.OpenForm "certificate"...........ขั้นที่ 4
                    Case 7 'No
                    rst = MsgBox("ต้องการพิมพ์บัญชีทหารกองเกิน (แบบ สด.1) ใช่หรือไม่", vbYesNoCancel + vbDefaultButton3, "โปรดยืนยัน")
                            If rst = vbYes Then
                                    DoCmd.OpenReport "SD1", acViewprint, , "[ID]=[Forms]![history].[ID]"
                                    rst = MsgBox("ต้องการพิมพ์บัญชีทหารกองเกิน ด้านหลัง ( แบบ สด.1)ใช่หรือไม่", vbYesNoCancel + vbDefaultButton3, "โปรดยืนยัน")
                            ElseIf rst = vbNo Then
                                    rst = MsgBox("ต้องการพิมพ์บัญชีทหารกองเกิน ด้านหลัง ( แบบ สด.1)ใช่หรือไม่", vbYesNoCancel + vbDefaultButton3, "โปรดยืนยัน")
                            If rst = vbYes Then
                                    DoCmd.OpenReport "SD11", acViewprint, , "[ID]=[Forms]![history].[ID]"
                                    DoCmd.OpenForm "certificate"
                            ElseIf rst = vbNo Then
                                    DoCmd.OpenForm "certificate"
                            Else
                                    Exit Sub
                            End If
                            End If
                    Case 2 'Cancle
                            ''''
                    End Select
End Sub
« แก้ไขครั้งสุดท้าย: 15 มี.ค. 64 , 06:24:20 โดย แดนชัย »

 

16 มี.ค. 64 , 15:59:14
ตอบกลับ #7

Un

: คำสั่ง yesNoCancel
« ตอบกลับ #7 เมื่อ: 16 มี.ค. 64 , 15:59:14 »
ฟังชันก์ IF มันไม่ยาก แต่มันจะดู งงงง
เนื่องจากมันมี 3 ตัวเลือก ยิ่ง งง ไปอีก
เวลาทำเราต้องทำเป็นชุดๆ
ชุดแรก มันจะมีตัวเลือกที่เมื่อเราเลือก NO
ก็เอาชุดที่ 2 ไปใส่ที่ NO ชุดต่อไปก็เหมือนกัน
แต่ที่คุณทำมันปนกันไปหมด อาจเพราะยังไม่เข้าใจ
ตัวรายงานที่ให้พิมพ์ ผมอาจจะเลือกผิดนะครับไปสลับกลับเอง

โค๊ด: [Select]
Dim RetValue As Variant, rst As String, rst2 As String
        RetValue = MsgBox("ต้องการพิมพ์ใบแสดงตนเพื่อลงบัญชีทหารทหารกองเกิน (แบบ สด.44) ใช่หรือไม่", vbYesNoCancel + vbDefaultButton3, "Un")
        Select Case RetValue
                    Case 6 'yes
                            DoCmd.OpenReport "SD44", acViewprint, , "[ID]=[Forms]![history].[ID]"
                    Case 7 'No
                    rst = MsgBox("ต้องการพิมพ์บัญชีทหารกองเกิน (แบบ สด.1) ใช่หรือไม่", vbYesNoCancel + vbDefaultButton3, "Un")
                            If rst = vbYes Then
                                    DoCmd.OpenReport "SD1", acViewprint, , "[ID]=[Forms]![history].[ID]"
                            ElseIf rst = vbNo Then
                                    rst2 = MsgBox("ต้องการพิมพ์บัญชีทหารกองเกิน ด้านหลัง ( แบบ สด.1)ใช่หรือไม่", vbYesNoCancel + vbDefaultButton3, "Un")
                                            If rst2 = vbYes Then
                                                    DoCmd.OpenReport "SD1", acViewprint, , "[ID]=[Forms]![history].[ID]"
                                            ElseIf rst2 = vbNo Then
                                                    DoCmd.OpenForm "certificate"
                                            Else
                                                    Exit Sub
                                            End If
                            Else
                                    Exit Sub
                            End If
                    Case 2 'Cancle
                            ''''
        End Select

 

16 มี.ค. 64 , 16:44:43
ตอบกลับ #8

แดนชัย

: คำสั่ง yesNoCancel
« ตอบกลับ #8 เมื่อ: 16 มี.ค. 64 , 16:44:43 »
ขอบพระคุณครับ

 


บอร์ดเรียนรู้ Access สำหรับคนไทย