กระทู้เก่าบอร์ด อ.Yeadram
1,938 4
URL.หัวข้อ /
URL
even ตอนเปิด/ปิด โปรแกรม
ไม่ทราบว่า มี even ตอนเปิด/ปิด โปรแกรม access ป่ะคับ โดยไม่ต้องอาศัย even ในฟอร์ม คือต้องการจะให้ถามก่อนปิดโปรแกรม กรณีที่ไม่มีฟอร์มใดเปิดอยู่เลย
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R01910
Event ของ Access Application เอง ไม่มีครับ ปกติแล้วเราจะมีฟอร์มที่ทำเป็น main menu หรือมี Toolsbar Menu และเมื่อต้องการออกจาก application เราก็จะคลิกปุ่มหรือเมนูอะไรสักอย่างจาก main menu หรือ Toolsbar Menu นั้น ก็จะทำให้เกิด event ที่เกี่ยวข้องเพื่อไปเช็คว่ามีฟอร์มอื่นๆเปิดอยู่หรือไม่ เมื่อเช็คแล้วก็อาจจะถามว่าจะให้ทำอะไรต่อไป จะปิดหรือไม่
2 @R01911
ผมก็ใช้ even จาก form นะครับ ตอนแรกก็คิดเหมือนเจ้าของกระทู้
แต่พอกลับมาคิดอีกทีก็การที่เราจะให้มันถามว่าต้องการปิดหรือไม่ นั่นมันเป็นส่วนที่ติดต่อกับผู้ใช้ ซึ่งส่วนใหญ่ก็จะต้องติดต่อกับผู้ใช้ผ่านฟอร์มอยู่แล้ว
แล้วทำไมเราต้องไปหา even อะไรที่มันไม่ต้องใช้ผ่านฟอร์มมาเพื่อคอยถามว่าต้องการปิด access หรือไม่
ยิ่งถ้ามองลึกลงไปในวัตถุประสงค์ของการใช้งานกล่องข้อความที่ต้องการให้ถามก่อนปิดแล้วก็อาจจะนึกออกได้ว่าควรจะให้มันถามเมื่อไร
แต่พอกลับมาคิดอีกทีก็การที่เราจะให้มันถามว่าต้องการปิดหรือไม่ นั่นมันเป็นส่วนที่ติดต่อกับผู้ใช้ ซึ่งส่วนใหญ่ก็จะต้องติดต่อกับผู้ใช้ผ่านฟอร์มอยู่แล้ว
แล้วทำไมเราต้องไปหา even อะไรที่มันไม่ต้องใช้ผ่านฟอร์มมาเพื่อคอยถามว่าต้องการปิด access หรือไม่
ยิ่งถ้ามองลึกลงไปในวัตถุประสงค์ของการใช้งานกล่องข้อความที่ต้องการให้ถามก่อนปิดแล้วก็อาจจะนึกออกได้ว่าควรจะให้มันถามเมื่อไร
3 @R01912
หนูเข้าใจว่าผู้ถามคงหมายถึงปัญหา User เผลอไปคลิกปิด Access โดยไม่ได้ตั้งใจ ทั้งที ่User ค้องการปิดแค่ฟอร์มหรือปิดแค่รายงานเท่านั้น เพราะเวลา Maximize แล้วปุ่มปิด มันจะอยู่ใกล้ชิดกันมาก ก็เลยต้องการหา even เพื่อให้มีการถามให้แน่ใจว่าต้องการปิด access เลยจริงหรือไม่ (ไม่ทราบว่าหนูเดาถูกหรือเปล่า)
4 @R01961
ผมใ้ช้วิธี กำนหนด control ขึ้นมาตัวหนึ่ง อยู่บน form หลัก ที่มี Memu bar ที่สร้างเองอยู่ด้วย (เหมือนที่พี่สันติสุขบอก) เป็น check box ครับ แล้วใช้การตรวจสอบสถานะของ control ตัวนี้ครับ
ที่ form หลักของระบบ
Private Sub Form_Load()
chkCanClose = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Not chkCanClose Then
MsgBox "หากต้องการเลิกการทำงาน กรุณาเลือกเมนู 'เลิกงาน' ", vbCritical, "ใช้ X ปิดไม่ได้"
Cancel = True
End If
End Sub
ที่เมนูเลิกงานผมก็ใช้คำสั่งแบบนี้ึครับ
Function MenuQuit()
On Error GoTo MenuQuit_Err
Beep
If MsgBox("คุณต้องการเลิกงานจริง ๆ หรือ", vbQuestion + vbYesNo + vbDefaultButton2, "เลิกงาน") = vbYes Then
MsgBox "ขอบคุณที่ใช้บริการ", vbInformation, "Thank You :-)"
Forms!frmMain!chkCanClose = True
DoCmd.Quit
Else
MsgBox "นั่นแน่!... คุณเปลี่ยนใจแล้วใช่ม๊า...", vbExclamation, "เลิกงาน"
End If
MenuQuit_Exit:
Exit Function
MenuQuit_Err:
MsgBox Error$
Resume MenuQuit_Exit
End Function
ลองเอาไปประยุกต์ใช้กันดูละกัน...
ใครจะเอาไปใช้ก็ไม่ว่ากันครับ :)
ที่ form หลักของระบบ
Private Sub Form_Load()
chkCanClose = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Not chkCanClose Then
MsgBox "หากต้องการเลิกการทำงาน กรุณาเลือกเมนู 'เลิกงาน' ", vbCritical, "ใช้ X ปิดไม่ได้"
Cancel = True
End If
End Sub
ที่เมนูเลิกงานผมก็ใช้คำสั่งแบบนี้ึครับ
Function MenuQuit()
On Error GoTo MenuQuit_Err
Beep
If MsgBox("คุณต้องการเลิกงานจริง ๆ หรือ", vbQuestion + vbYesNo + vbDefaultButton2, "เลิกงาน") = vbYes Then
MsgBox "ขอบคุณที่ใช้บริการ", vbInformation, "Thank You :-)"
Forms!frmMain!chkCanClose = True
DoCmd.Quit
Else
MsgBox "นั่นแน่!... คุณเปลี่ยนใจแล้วใช่ม๊า...", vbExclamation, "เลิกงาน"
End If
MenuQuit_Exit:
Exit Function
MenuQuit_Err:
MsgBox Error$
Resume MenuQuit_Exit
End Function
ลองเอาไปประยุกต์ใช้กันดูละกัน...
ใครจะเอาไปใช้ก็ไม่ว่ากันครับ :)
Time: 0.3184s