使用 CancelEvent 操作可以取消一个事件,该事件在取消前用于引发 Microsoft Access 执行后来包含该操作的宏。宏名称即为事件属性的设置,如 BeforeUpdate、OnOpen、OnUnload 或 OnPrint。
CancelEvent 操作没有任何参数。
在窗体中,通常在包含 BeforeUpdate 事件属性的验证宏中使用 CancelEvent 操作。当用户在控件或记录中输入数据时,Access 将在向数据库添加这些数据之前先运行该宏。如果数据不符合宏中的验证条件,CancelEvent 操作便会在更新过程开始之前取消更新。
通常都是将该操作和 MsgBox 操作一起使用,以指出数据不符合验证条件,并提供关于应该输入的数据类型的有用信息。
使用 CancelEvent 操作可以取消下列事件:
ApplyFilter
BeforeDelConfirm
BeforeInsert
BeforeUpdate
DblClick
Delete
Dirty
NoData
Exit
MouseDown
Filter
Open
KeyPress
Unload
Format
Print
注意 可以将 MouseDown 事件与 CancelEvent 操作一起使用,以取消在对象上单击鼠标右键时发生的事件。
如果在某个控件的 OnDblClick 事件属性的设置中指定了一个包含 CancelEvent 操作的宏,该操作便会取消 DblClick 事件。
对于可以被取消的事件,事件的默认行为(即 Access 在事件发生时通常所做的操作)在事件的宏运行之后发生。这使得您可以取消默认行为。例如,当双击文本框中包含插入点的单词时,Access 通常会选定该单词。可以在 DblClick 事件的宏中取消这种默认行为,转而执行某个其他操作,例如打开一个窗体,显示有关文本框中数据的信息。对于不能被取消的事件,默认行为在宏运行之前便会发生。
注意 如果某窗体的 OnUnload 事件属性指定了一个执行 CancelEvent 操作的宏,则不能关闭该窗体。若要关闭窗体,必须更正引起 CancelEvent 操作执行的条件,或者打开宏并删除 CancelEvent 操作。如果窗体是模式窗体,则不能打开该宏。
若要在 Visual Basic 中执行 CancelEvent 操作,可使用 DoCmd 对象的 CancelEvent 方法。