Form.Delete 事件 (Access)

当用户执行某些操作(例如按 Delete 键)删除记录时,但在实际删除记录之前发生。

语法

表达式删除 (取消)

expression:表示 Form 对象的变量。

参数

名称 必需/可选 数据类型 说明
Cancel 必需 Integer 该设置确定是否发生 Delete 事件。 将 Cancel 参数设置为 True (1) 将取消 Delete 事件。

备注

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

在删除某一记录后,该记录存储在临时缓冲区中。 BeforeDelConfirm 事件发生在 Delete 事件 (或者如果删除了多个记录,则所有记录都被删除后发生,每个记录) 发生 Delete 事件,但在显示“删除确认”对话框之前。 取消 BeforeDelConfirm 事件从缓冲区还原或多个记录,并禁止显示 删除确认对话框。

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

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

注意

如果在“访问选项”对话框的“高级”选项卡上清除“确认”下的“记录更改”复选框,则不会发生 BeforeDelConfirmAfterDelConfirm 事件,并且不会显示“删除确认”对话框,可通过选择“Microsoft Office”按钮,然后选择“访问选项”获得。

Delete 事件发生时运行宏或事件过程,可以阻止记录被删除或允许仅在特定条件下删除记录。 此外可以使用 Delete 事件显示一个对话框,询问用户是否要删除记录之前将其删除。

若要删除记录,可以在“编辑”菜单中选择“删除记录”。 这会删除当前记录 (记录选择器) 指示的记录。 还可以选择记录选择器或选择“编辑”菜单上的“选择记录”以选择记录,然后按 Delete 键将其删除。 如果选择 “删除记录”,则当前记录的记录选择器或 “选择记录”,将发生具有焦点的控件的 ExitLostFocus 事件。 如果更改了记录中的任何数据,则记录的 BeforeUpdateAfterUpdate 事件在 ExitLostFocus 事件之前发生。 如果选择其他记录的记录选择器,则也会发生该记录的 Current 事件。

删除记录后,焦点将移动到已删除记录后的下一条记录,该记录的 当前 事件发生,然后是该记录中第一个控件的 EnterGotFocus 事件。

然后发生 BeforeDelConfirm 事件,Microsoft Access 将显示 删除确认对话框要求您确认删除操作之前。 通过确认或取消删除到对话框中响应后, AfterDelConfirm 事件发生。

您可以一次删除一个或多个记录。 Delete 事件发生后的每条记录被删除。 这使您可以访问每个记录中的数据实际上被删除之前, 有选择性地确认或取消每个删除 删除 宏或事件过程中的。 删除多个记录时,在删除最后一条记录之后的记录的 Current 事件以及此记录中第一个控件的 EnterGotFocus 事件不会发生,直到删除所有记录。 换句话说,对于每个选定的记录都发生 Delete 事件,但直到删除所有选中的记录允许其他事件发生。 在删除所有选定的记录之前, BeforeDelConfirmAfterDelConfirm 事件也不会发生。

示例

以下示例演示如何阻止用户从表中删除记录。 若要尝试此示例,请将以下事件过程添加到基于表的窗体中。 切换到“数据表”视图,并尝试删除记录。

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

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。