AfterDelConfirm 事件在用户确认删除操作,并且记录确实已被删除或者删除操作已被取消之后发生。
Private Sub Form_AfterDelConfirm(Status As Integer)
Status 指明是否已删除某个记录。Status 参数可以是下面任何一个固有常量:
常量说明
acDeleteOK 表示已成功删除。
acDeleteCancel 表示已在 Visual Basic 中取消删除。
acDeleteUserCancel 表示用户已取消删除。
说明
若要在这些事件发生时执行一个宏或事件过程,请将 AfterDelConfirm 属性设置为宏的名称或 [事件过程]。
AfterDelConfirm 事件发生在一条或多条记录被真正删除之后,或者一个或多个删除操作被取消之后。如果 BeforeDelConfirm 事件未被取消,则“删除确认”对话框显示之后 AfterDelConfirm 事件即发生。即使 BeforeDelConfirm 事件已被取消,AfterDelConfirm 事件仍将发生。AfterDelConfirm 事件过程将返回有关删除的状态信息。例如,可以使用与 AfterDelConfirm 事件相关的宏或事件过程来重新计算受删除记录影响的总计。
如果取消 Delete 事件,AfterDelConfirm 事件将不会发生,“删除确认”对话框也不会显示。
注释 如果清除“选项”对话框(通过单击“工具”菜单上的“选项”即可打开)“编辑/查找”选项卡上“确认”下面的“记录更改”复选框,AfterDelConfirm 事件将不会发生,且“删除确认”对话框不会显示。
Delete 事件发生时,可以通过运行宏或事件过程来阻止删除记录或只允许在特定条件下删除记录。也可以使用 Delete 事件来显示一个对话框,在记录被删除之前询问用户是否要删除该记录。
若要删除一条记录,可以单击“编辑”菜单上的“删除记录”。这将删除当前记录(记录选定器所指定的记录)。也可以单击记录选定器或单击“编辑”菜单上的“选择记录”来选择记录,然后按 Del 删除它。如果单击“删除记录”、当前记录的记录选定器或“选择记录”,则焦点所在的控件的 Exit 和 LostFocus 事件将会发生。如果已经更改了记录中的任意数据,则记录的 BeforeUpdate 和 AfterUpdate 事件将在 Exit 和 LostFocus 事件之前发生。如果单击了另一个记录的记录选定器,则该选定记录的 Current 事件也会发生。
删除记录之后,焦点将移到被删除记录的下一条记录,并且这条记录的 Current 事件将会发生,随后将发生该记录中第一个控件的 Enter 和 GotFocus 事件。
接着在 Microsoft Access 显示“删除确认”对话框询问用户确认删除之前,BeforeDelConfirm 事件将发生。在确认删除或取消删除响应了对话框之后,AfterDelConfirm 事件发生。
可以同时删除一条或多条记录。Delete 事件是在每条记录被删除之后发生,这使用户可以在记录被真正删除之前访问每条记录中的数据,并且可以在 Delete 宏或事件过程中有选择地确认或取消每个删除操作。删除多条记录时,对于最后一条被删除记录的下一条记录,其 Current 事件和该记录中第一个控件的 Enter 和 GotFocus 事件直到所有记录都被删除后才发生。也就是说,每条选定记录的 Delete 事件都会发生,而且必须所有的选定记录都被删除后其他事件才会发生。BeforeDelConfirm 和 AfterDelConfirm 事件也在所有选定记录被删除之后才发生。
可以使用 Delete 宏显示“删除确认”对话框,以便在删除记录前询问用户是否要执行删除。
无论何时删除记录,都可以使用 BeforeDelConfirm 或 AfterDelConfirm 宏进行响应。但是,BeforeDelConfirm 和 AfterDelConfirm 宏无法设置确定是否显示“删除确认”对话框的参数,也无法返回指明删除状态的参数,因此通常要用事件过程处理这些事件。
可以使用 Delete 宏中的 CancelEvent 操作来取消删除。
可以使用 BeforeDelConfirm 宏中的 CancelEvent 操作来取消对所有已删除记录进行的删除操作。如果这样做,不会显示“删除确认”对话框。但是,如果取消 BeforeDelConfirm 事件,则会发生 AfterDelConfirm 事件。
不能在 AfterDelConfirm 宏中使用 CancelEvent 操作。
以下示例演示了如何使用 BeforeDelConfirm 事件过程在删除记录时不显示“删除确认”对话框,转而显示自定义对话框。它还显示了如何使用 AfterDelConfirm 事件过程显示一条消息,指出删除操作是否按通常的方法进行,以及是在 Visual Basic 中取消删除还是由用户取消删除。
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
Private Sub Form_AfterDelConfirm(Status As Integer)
Select Case Status
Case acDeleteOK
MsgBox "Deletion occurred normally."
Case acDeleteCancel
MsgBox "Programmer canceled the deletion."
Case acDeleteUserCancel
MsgBox "User canceled the deletion."
End Select
End Sub