Access VBA教程:Delete事件

在用户执行某些操作(例如,按下 Delete 删除一条记录)来删除记录、记录实际上被删除之前,Delete事件发生。

说明

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

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

AfterDelConfirm事件发生在一条或多条记录实际上被删除之后,或者一个或多个删除操作被取消之后。如果 BeforeDelConfirm事件没有被取消,在显示“删除确认”对话框之后将发生 AfterDelConfirm事件。即使 BeforeDelConfirm事件已被取消,AfterDelConfirm事件仍将发生。AfterDelConfirm事件过程将返回有关删除的状态信息。例如,可以使用与 AfterDelConfirm事件相关的宏或事件过程来重新计算受删除记录影响的总计。

如果取消 Delete事件,BeforeDelConfirm 和 AfterDelConfirm事件将不会发生,并且“删除确认”对话框也不会显示。

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

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

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

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

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

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

VBA示例

下面的示例显示阻止用户从表中删除记录的过程。

若要试用该示例,请将下列事件过程添加到基于表的窗体中。切换到窗体“数据表”视图并且试着删除一条记录。


Private Sub Form_Delete(Cancel As Integer)
    Cancel = True
    MsgBox "This record can't be deleted."
End Sub

上页:Access VBA教程:Deactivate事件 下页:Access VBA教程:Dirty事件

Access VBA教程:Delete事件

Access VBA教程:Dirty事件 Access VBA教程:Enter事件
Access VBA教程:Error事件 Access VBA教程:Exit事件
Access VBA教程:Filter事件 Access VBA教程:FirstPage、LastPage、NextPage、PrevPage事件(快照查看器)
Access VBA教程:Format事件 Access VBA教程:GotFocus事件
Access VBA教程:Initialize事件 Access VBA教程:ItemAdded事件
Access VBA教程:ItemRemoved事件 Access VBA教程:KeyDown事件
Access VBA教程:KeyPress事件 Access VBA教程:KeyUp事件
Access VBA教程:Load事件 Access VBA教程:LostFocus事件
Access VBA教程:MouseDown事件 Access VBA教程:作为位掩码的固有常量
Access VBA教程:MouseMove事件 Access VBA教程:MouseUp事件
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号