Access VBA教程:BeforeDelConfirm事件

在用户将一条或多条记录删除到缓冲区之后、在 Microsoft Access 显示对话框询问用户确认删除操作之前,BeforeDelConfirm事件发生。

说明

若要在发生这些事件时运行宏或事件过程,请将BeforeDelConfirm属性设置为宏的名称或 [事件过程]。

当记录被删除后,它其实保存在临时缓冲区中。BeforeDelConfirm事件发生在 Delete事件之后(或者如果已经删除多条记录,在所有记录被删除之后,对于每一条记录都有一个 Delete事件发生),但在显示“删除确认”对话框之前。取消 BeforeDelConfirm事件将从缓冲区中恢复一条或多条记录,并阻止“删除确认”对话框的显示。

AfterDelConfirm事件发生在一条或多条记录被实际删除之后,或者一个或多个删除操作被取消之后。如果 BeforeDelConfirm事件未被取消,则在“确认删除”显示后即发生 AfterDelConfirm。即便 BeforeDelConfirm事件被取消,AfterDelConfirm事件仍会发生。

如果取消 Delete事件,则 BeforeDelConfirm事件不会发生,而“删除确认”对话框也不会显示。

注意   如果清除“选项”对话框(通过单击“工具”菜单上的“选项”命令打开)中“编辑/查找”选项卡上“确认”下的“记录更改”复选框,则 BeforeDelConfirm事件不会发生,并且“删除确认”对话框也不会显示。

当发生 Delete事件时,通过运行宏或事件过程,可以阻止删除某条记录或只允许在特定条件下删除记录。也可以使用 Delete事件来显示对话框,在删除记录之前询问用户是否要删除该记录。

若要删除一条记录,可以单击“编辑”菜单上的“删除记录”。这将删除当前的记录(记录选择器所指定的记录)。也可以单击记录选择器或单击“编辑”菜单上的“选择记录”来选择记录,然后按 Del 将它删除。如果单击“删除记录”、当前记录的记录选择器或“选择记录”,则焦点所在控件的ExitLostFocus事件将会发生。如果已经更改了记录中的任意数据,则记录的BeforeUpdateAfterUpdate事件将在 Exit 和 LostFocus事件之前发生。如果单击另一条记录的记录选择器,该记录的Current事件也会发生。

删除记录之后,焦点将移到被删除记录的下一条记录,并且这条记录的 Current事件将会发生,随后该记录中第一个控件的EnterGotFocus事件也随之发生。

接下来就在 Microsoft Access 显示“删除确认”对话框询问用户确认删除之前,BeforeDelConfirm事件发生。在通过确认选项或取消删除选项来响应对话框之后,AfterDelConfirm事件发生。

可以同时删除一条或多条记录。Delete事件是在每条记录被删除之后发生,这使用户可以在记录被真正删除之前访问每条记录中的数据,并且可以在 Delete 宏或事件过程中有选择性地确认或取消每个删除操作。当删除多条记录时,对于最后一条被删除记录的下一条记录,其 Current事件和该记录中第一个控件的 Enter 和 GotFocus事件直到所有记录都被删除后才发生。也就是说,每条选定记录的 Delete事件都会发生,而且必须所有的选定记录都已删除后才允许其他事件发生。BeforeDelConfirm事件也在所有选定记录被删除之后才发生。

VBA示例

以下示例显示如何使用 BeforeDelConfirm事件过程,以便在记录被删除时不显示“删除确认”对话框,而显示自定义对话框。


Private Sub Form_BeforeDelConfirm(Cancel As Integer, _
                                  Response As Integer)
    ' Suppress default Delete Confirm dialog box.
    Response = acDataErrContinue     ' Display custom dialog box.
    If MsgBox("Delete this record?", vbOKCancel) = vbCancel Then
        Cancel = True     End If
End Sub

上页:Access VBA教程:BeforeCommitTransaction事件 下页:Access VBA教程:BeforeInsert事件

Access VBA教程:BeforeDelConfirm事件

Access VBA教程:BeforeInsert事件 Access VBA教程:BeforeQuery事件
Access VBA教程:BeforeRender事件 Access VBA教程:BeforeScreenTip事件
Access VBA教程:BeforeUpdate事件 Access VBA教程:BeginBatchEdit事件
Access VBA教程:Change事件 Access VBA教程:Click事件
Access VBA教程:Close事件 Access VBA教程:CommandBeforeExecute事件
Access VBA教程:CommandChecked事件 Access VBA教程:CommandEnabled事件
Access VBA教程:CommandExecute事件 Access VBA教程:Current事件
Access VBA教程:DataChange事件 Access VBA教程:DataSetChange事件
Access VBA教程:DblClick事件 Access VBA教程:Deactivate事件
Access VBA教程:Delete事件 Access VBA教程:Dirty事件
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号