如何取消在关闭事件形式结束?(How to cancel a form close in Close

2019-06-25 00:18发布

我敢肯定,这是很简单的,但我不能找到它。 在Access窗体的关闭事件,我怎么能取消关闭窗体? 我有一个测试,计算在一个表中的记录。 如果表中有记录,我要问用户是否要关闭或回去和他们一起工作。 那么,如何取消关闭事件?

Answer 1:

您可以使用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  

数据库对象的事件顺序



Answer 2:

学习和尝试这个代码,它为我工作。 替换为您选择的名称必需的变量名。 在窗体的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


Answer 3:

使用“Form_BeforeUpdate(取消作为整数)”事件,并设置取消为True。

请注意,你根本就不能,除非你添加一些逻辑来实际允许更新数据库,收于一切。



文章来源: How to cancel a form close in Close Event?