กระทู้เก่าบอร์ด อ.Yeadram
1,136 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 ฉบับ
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
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 ได้ไม่นานครับ อยากแลกเปลี่ยนความรู้เพื่อต่อยอดครับถ้าอาจารย์ท่านใดคิดว่ามีวิธีง่ายกว่าหรือเหมาะสมกว่ากรณาแนะนำด้วยครับ
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
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
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
ผมทดลองตามที่ท่านได้แจ้งให้ทราบ ทำไปทำมา 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 ต่อครับ
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
ป.ล.ไม่ต้องเรียกท่านหรอกครับผมก็เข้ามาหาความรู้แนวทางจากอาจารย์หลายหลายท่านเหมือนกันครับเป็นผู้เริ่มต้นเหมือนกัน
ดูตรงบรรทัด
If CInt(Me.อายุที่ลงบัญชี.Value) = 17 Then 'ตรงนี้ต้องเป็น <= น้อยกว่าหรือเท่ากับครับ ไม่ใช่ = เท่ากับครับ
คือต้องเป็นแบบนี้ครับ
If CInt(Me.อายุที่ลงบัญชี.Value) <= 17 Then
ป.ล.ไม่ต้องเรียกท่านหรอกครับผมก็เข้ามาหาความรู้แนวทางจากอาจารย์หลายหลายท่านเหมือนกันครับเป็นผู้เริ่มต้นเหมือนกัน
8 @R18185
ขอบคุณมากนะครับ
ผมกำลังเริ่มสร้าง Access ในการเก็บข้อมูลชายไทยระดับอำเภอเพื่อเข้าสู่ระบบทหารและกำลังพลสำรอง
ผมกำลังเริ่มสร้าง Access ในการเก็บข้อมูลชายไทยระดับอำเภอเพื่อเข้าสู่ระบบทหารและกำลังพลสำรอง
Time: 0.3317s
ใน ฟอร์ม ประวัติทหารกองเกิน มีการเก็บอายุไว้ด้วย ชื่อ "อายุที่ลงบัญชีทหาร"