แสดง Msgbox
กระทู้เก่าบอร์ด อ.Yeadram

 1,056   8
URL.หัวข้อ / URL
แสดง Msgbox

ขอเรียนถามผู้รู้ครับ

1.ผมมีฟอร์มรับข้อมูลเข้าไปเก็บในตาราง....สร้างปุ่มบันทึก..ใช้งาน OK
2.สร้างปุ่ม..พิมพ์ สด.1...สร้างเงื่อนไข...ใช้งาน OK

Dim returnvalue As Integer

DoCmd.OpenReport "บัญชีทหารกองเกิน", acViewPrint, , "[ID]=[Form]![ประวัติทหารกองเกิน].[ID]"

If MsgBox("คุณต้องการพิมพ์หน้าหลังบัญชีทหารกองเกิน ใช่ หรือไม่", vbInformation + vbYesNo, "โปรดยืนยัน") = vbYes Then

Cancel = True

DoCmd.OpenReport "หน้าหลังสด1", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"

DoCmd.OpenForm "ใบสำคัญ­"
End If
End Sub

3.สร้าง.. ฟอร์ม.. ใบสำคัญ..มีปุ่มพิมพ์...(ต่อจากข้อ 2)

DoCmd.OpenReport "ใบสำคัญ­39", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"

DoCmd.Close acForm, "ใบสำคัญ39­"

If MsgBox("คุณต้องการส่งดำเนินคดีตามมาตรา 18 ใช่ หรือ ไม่", vbInformation + vbYesNo, "โปรดยืนยัน") = vbYes Then

Cancel = True

DoCmd.OpenReport "มาตรา18", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"

DoCmd.OpenReport "สำเนามาตรา18", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"

End If
End Sub

4.ขอเรียนถามตรง if msgbox .ในข้อ 3. หากเราต้องการว่า ถ้ามีอายุ 17 ปี ไม่ต้องแสดง Msgbox (ปิดฟอร์มใบสำคัญ) แต่ถ้ามีอายุมากกว่า 17 ปี ให้แสดง Msgbox เพื่อต้องการพิมพ์หนังสือส่งดำเนินคคี 2 ฉบับ

8 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R18157
เพิ่่มเติม

ใน ฟอร์ม ประวัติทหารกองเกิน มีการเก็บอายุไว้ด้วย ชื่อ "อายุที่ลงบัญชีทหาร"
2 @R18162
3.สร้าง.. ฟอร์ม.. ใบสำคัญ..มีปุ่มพิมพ์...(ต่อจากข้อ 2)

DoCmd.OpenReport "ใบสำคัญ­39", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"

'#############################################################################
'
if Cint(me.textboxที่เก็บอายุ.value) <= 17 then
DoCmd.Close acForm, "ใบสำคัญ39­"
exit sub
end if

'#############################################################################

DoCmd.Close acForm, "ใบสำคัญ39­"


If MsgBox("คุณต้องการส่งดำเนินคดีตามมาตรา 18 ใช่ หรือ ไม่", vbInformation + vbYesNo, "โปรดยืนยัน") = vbYes Then

Cancel = True

DoCmd.OpenReport "มาตรา18", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"

DoCmd.OpenReport "สำเนามาตรา18", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"

End If
End Sub

'---------------------------------------------------------------------------------------------------------------------------
ไม่แน่ใจนะครับว่าตรงตามที่ต้องการมั้ยครับ ให้ตรวจสอบอายุจาก textbox ที่เก็บอายุในฟอร์ม ว่าตรงตามเงื่อนไขหรือไม่ถ้าไม่เกิน 17 ให้ปิดฟอร์มแล้วจบการทำงานใน sub นี้ ถ้าเกิน 17 ก็จะทำงานตามโค้ดด้านล่างต่อครับ

ผมเพิ่งหัดใช้ Access ได้ไม่นานครับ อยากแลกเปลี่ยนความรู้เพื่อต่อยอดครับถ้าอาจารย์ท่านใดคิดว่ามีวิธีง่ายกว่าหรือเหมาะสมกว่ากรณาแนะนำด้วยครับ
3 @R18176
ขอคุณมาก ๆ ครับ โอกาสหน้าจะมารบกวนใหม่

DoCmd.OpenReport "ใบสำคัญ­39", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"
If CInt(Me.อายุที่ลงบัญชี.Value) = 17 Then
DoCmd.Close acForm, "ใบสำคัญ­"
Exit Sub
End If
If MsgBox("คุณต้องการส่งดำเนินคดีตามมาตรา 18 ใช่ หรือ ไม่", vbInformation + vbYesNo, "โปรดยืนยัน") = vbYes Then
Cancel = True
DoCmd.OpenReport "มาตรา18", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"
DoCmd.OpenReport "สำเนามาตรา18", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"
End If
End Sub
4 @R18177
ขออภัยครับพิมพ์ตก 1 บรรทัด
DoCmd.OpenReport "ใบสำคัญ­39", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"
If CInt(Me.อายุที่ลงบัญชี.Value) = 17 Then
DoCmd.Close acForm, "ใบสำคัญ­"
Exit Sub
End If
DoCmd.Close acForm, "ใบสำคัญ­" (บรรทัดที่พิมพ์ตก)
If MsgBox("คุณต้องการส่งดำเนินคดีตามมาตรา 18 ใช่ หรือ ไม่", vbInformation + vbYesNo, "โปรดยืนยัน") = vbYes Then
Cancel = True
DoCmd.OpenReport "มาตรา18", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"
DoCmd.OpenReport "สำเนามาตรา18", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"
End If
End Sub
5 @R18178
ขอรบกวนสอบถามท่าน TIDE อีกครั้ง

ผมทดลองตามที่ท่านได้แจ้งให้ทราบ ทำไปทำมา Msgbox แสดงทั้งคนที่มีอายุ 17 ปี และ มากกว่า 18 ปี
จุดประสงค์ของผมคือ อายุ 17 ปี ไม่แสดง Msgbox ถ้าตั้งแต่ 18 ปีขึ้นไปให้แสดง Msgbox
6 @R18179
ขออภัยครับพิมพ์ตก 1 บรรทัด
DoCmd.OpenReport "ใบสำคัญ­39", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"
If CInt(Me.อายุที่ลงบัญชี.Value) = 17 Then               'ตรงนี้ต้องเป็น <= น้อยกว่าหรือเท่ากับครับ ไม่ใช่ = เท่ากับ
DoCmd.Close acForm, "ใบสำคัญ­"
Exit Sub
End If
DoCmd.Close acForm, "ใบสำคัญ­" (บรรทัดที่พิมพ์ตก)
If MsgBox("คุณต้องการส่งดำเนินคดีตามมาตรา 18 ใช่ หรือ ไม่", vbInformation + vbYesNo, "โปรดยืนยัน") = vbYes Then
Cancel = True
DoCmd.OpenReport "มาตรา18", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"
DoCmd.OpenReport "สำเนามาตรา18", acViewPrint, , "[ID]=[Forms]![ประวัติทหารกองเกิน].[ID]"
End If
End Sub

ตอนนี้มันกลายเป็น เฉพาะ 17 ปีถึงไม่แสดงครับต้องใช้น้อยกว่าหรือเท่า 17 ( <= 17 ) ไม่งั้นรายงานที่ไม่ใช่ 17 ทั้งหมดจะแสดง msgbox ต่อครับ
7 @R18181
อาจดูยากไปหน่อยครับ

ดูตรงบรรทัด
If CInt(Me.อายุที่ลงบัญชี.Value) = 17 Then               'ตรงนี้ต้องเป็น <= น้อยกว่าหรือเท่ากับครับ ไม่ใช่ = เท่ากับครับ

คือต้องเป็นแบบนี้ครับ

If CInt(Me.อายุที่ลงบัญชี.Value) <= 17 Then    

ป.ล.ไม่ต้องเรียกท่านหรอกครับผมก็เข้ามาหาความรู้แนวทางจากอาจารย์หลายหลายท่านเหมือนกันครับเป็นผู้เริ่มต้นเหมือนกัน
8 @R18185
ขอบคุณมากนะครับ

ผมกำลังเริ่มสร้าง Access ในการเก็บข้อมูลชายไทยระดับอำเภอเพื่อเข้าสู่ระบบทหารและกำลังพลสำรอง
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3251s