CancelEvent 操作

expandtri全部显示

使用 CancelEvent 操作可以取消一个事件,该事件在取消前用于引发 Microsoft Access 执行后来包含该操作的。宏名称即为事件属性的设置,如 BeforeUpdateOnOpenOnUnloadOnPrint

设置

CancelEvent 操作没有任何参数。

说明

窗体中,通常在包含 BeforeUpdate 事件属性的验证宏中使用 CancelEvent 操作。当用户在控件记录中输入数据时,Access 将在向数据库添加这些数据之前先运行该宏。如果数据不符合宏中的验证条件,CancelEvent 操作便会在更新过程开始之前取消更新。

通常都是将该操作和 MsgBox 操作一起使用,以指出数据不符合验证条件,并提供关于应该输入的数据类型的有用信息。

使用 CancelEvent 操作可以取消下列事件:

ApplyFilter

Dirty

MouseDown

BeforeDelConfirm

Exit

NoData

BeforeInsert

Filter

Open

BeforeUpdate

Format

Print

DblClick

KeyPress

Unload

Delete



 

注释  可以将 MouseDown 事件与 CancelEvent 操作一起使用,以取消在对象上单击鼠标右键时发生的事件。

如果在某个控件的 OnDblClick 事件属性的设置中指定了一个包含 CancelEvent 操作的宏,该操作便会取消 DblClick 事件。

对于可以被取消的事件,事件的默认行为(即 Access 在事件发生时通常所做的操作)在事件的宏运行之后发生。这使得您可以取消默认行为。例如,当双击文本框中包含插入点的单词时,Access 通常会选定该单词。可以在 DblClick 事件的宏中取消这种默认行为,转而执行某个其他操作,例如打开一个窗体,显示有关文本框中数据的信息。对于不能被取消的事件,默认行为在宏运行之前便会发生。

注释  如果某个窗体的 OnUnload 事件属性指定了一个执行 CancelEvent 操作的宏,则不能关闭该窗体。若要关闭窗体,必须更正引起 CancelEvent 操作执行的条件,或者打开宏并删除 CancelEvent 操作。如果窗体是模式窗体,则不能打开该宏。

若要在 Visual Basic 中执行 CancelEvent 操作,可使用 DoCmd 对象的 CancelEvent 方法。

示例

blueup 通过使用宏验证数据

下面的验证宏检查在“供应商”窗体中输入的邮政编码。它显示 StopMacro、MsgBox、CancelEvent 及 GoToControl 操作的使用方法。条件表达式用于检查在该窗体上记录中输入的国家/地区和邮政编码。如果邮政编码不符合其国家/地区的正确格式,宏将显示消息框,并取消对记录的保存。然后您将返回到“邮政编码”控件并可以在那里改正错误。该宏应附加到“供应商”窗体的 BeforeUpdate 属性。

条件

操作

参数:设置

备注

IsNull([国家/地区])

StopMacro


如果“国家/地区”为 Null,就无法验证邮政编码。

[国家/地区] In ("法国","意大利","西班牙") And Len([邮政编码]) <> 5

MsgBox

消息:邮政编码必须为 5 个字符。

发嘟嘟声:是

类型:信息

标题:邮政编码错误

如果邮政编码不是 5 个字符,则会显示消息。

...

CancelEvent


取消事件。


GoToControl

控件名称:邮政编码


[国家/地区] In ("澳大利亚","新加坡") And Len([邮政编码]) <> 4

MsgBox

消息:邮政编码必须为 4 个字符。

发嘟嘟声:是

类型:信息

标题:邮政编码错误

如果邮政编码不是 4 个字符,则会显示消息。

...

CancelEvent


取消事件。


GoToControl

控件名称:邮政编码


([国家/地区] = "加拿大") And ([邮政编码] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]")

MsgBox

消息:邮政编码无效。加拿大编码示例:H1J 1C3

发嘟嘟声:是

类型:信息

标题:邮政编码错误

如果邮政编码不符合加拿大的有效格式,则会显示消息。(加拿大编码示例:H1J 1C3)

...

CancelEvent


取消事件。