wake-up-neo.com

Wie kann ich das Schließen eines Formulars in Close Event abbrechen?

Ich bin sicher, das ist sehr einfach, aber ich kann es nicht finden. Wie kann ich das Schließen des Formulars beim Schließen eines Zugriffsformulars abbrechen? Ich habe einen Test, der die Datensätze in einer Tabelle zählt. Wenn diese Tabelle Datensätze enthält, möchte ich den Benutzer fragen, ob er schließen oder zurückgehen und mit ihnen arbeiten möchte. Wie storniere ich das Schließen-Ereignis?

9
MAW74656

Sie können das Ereignis Unload verwenden:

GlobalVar ButtonClicked

Private Sub Form_Open(Cancel As Integer)
     ButtonClicked = False
End Sub

Private ClickMe_Click(Cancel As Integer)
     ButtonClicked = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
     If Not ButtonClicked Then
         Cancel = True
     End if
End Sub  

Reihenfolge der Ereignisse für Datenbankobjekte

12
Fionnuala

Verwenden Sie das Ereignis "Form_BeforeUpdate (cancel as integer)" und setzen Sie cancel auf True.

Beachten Sie, dass Sie einfach nicht schließen können, es sei denn, Sie fügen eine Logik hinzu, um die Aktualisierung der Datenbank zuzulassen.

1
rogsonl

Studiere und probiere diesen Code, es hat für mich funktioniert. Ersetzen Sie die erforderlichen Variablennamen durch Ihre gewählten Namen. Fügen Sie den Code in das form_unload-Ereignis Ihres Formulars ein. ACHTUNG !!!: Nachdem Sie diesen Vorgang ausgeführt haben, können Sie in der Entwurfs- und Layoutansicht nur schwer auf Ihr Formular zugreifen

    Private Sub Form_Unload(Cancel As Integer)
        userresponse = MsgBox("Are you sure you want close? All your work wouldn't be saved", vbYesNo, "Database Information")
        Select Case userresponse
        Case 6
            Cancel = False
            'this line opens another form in my own case
            DoCmd.OpenForm "EngMenu"  

        Case 7
            Cancel = True
            'this line keeps my own form open in my own case
            DoCmd.OpenForm "UpdateForm"


        Case Else:

            MsgBox "You are not allowed to perform this operation", vbInformation, "Database Information"
        End Select
    End Subenter code here
0
user28864