全部显示

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 事件也在所有选定记录被删除之后才发生。

示例

以下示例显示如何使用 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