Как отменить закрытие формы в случае закрытия?

Я уверен, что это очень простой, но я не могу найти его. В случае закрытия формы доступа, как я могу отменить закрытие формы? У меня есть тест, который подсчитывает записи в таблице. Если в этой таблице есть записи, я хочу спросить пользователя, хотят ли они закрыть или вернуться и работать с ними. Так как же отменить событие закрытия?

3 ответов


вы можете использовать событие Unload:

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  

порядок событий для объектов базы данных


используйте событие" Form_BeforeUpdate(cancel as integer) " и установите cancel в True.

обратите внимание, что вы просто не сможете закрыть вообще, если вы не добавите некоторую логику, чтобы фактически разрешить обновление базы данных.


изучите и попробуйте этот код, он работал для меня. Замените необходимые имена переменных выбранными именами. Вставьте код в событие form_unload формы. Предупреждение!!!: После выполнения этой операции вам будет сложно получить доступ к вашей форме в режиме дизайн и макет

    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