AfterUpdate 事件

expandtri全部显示

AfterUpdate 事件在控件中的数据被改变或记录被更新之后发生。

Private Sub object_AfterUpdate()

object    窗体或控件的名称。

说明

注释

?当使用 Visual Basic 或含有 SetValue 操作的来更改控件的数据时,不会触发这些事件。但是,如果随后移到另一条记录或保存该记录,该窗体的 AfterUpdate 事件便会发生。

?AfterUpdate 事件仅适用于窗体上的控件,不适用于报表上的控件。
?该事件不适用于选项组中的选项按钮复选框切换按钮,只适用于选项组本身。

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

当更新控件或记录时,将会触发 AfterUpdate 事件。在一条记录中,当控件失去焦点或用户按 Enter 或 Tab 时,每个控件中被更改的数据才会更新;当焦点离开记录或用户单击“记录”菜单中的“保存记录”时,整条记录会更新且数据会保存到数据库中。

在窗体的控件中输入新数据或更改数据后,再移到另一条记录或在“记录”菜单上选择“保存记录”来保存记录时,窗体的 AfterUpdate 事件将紧跟着控件的 AfterUpdate 事件发生。移动到其他记录时,控件的 ExitLostFocus 事件发生,紧接着移动到的记录的 Current 事件发生,然后该记录中第一个控件的 EnterGotFocus 事件发生。若要运行 AfterUpdate 宏或事件过程而不运行 Exit 和 LostFocus 宏或事件过程,请用“记录”菜单上的“保存记录”命令保存记录。

AfterUpdate 宏和事件过程仅在控件中的数据更改时才会运行。计算控件中数据的更改不会触发这些事件。窗体的 AfterUpdate 宏和事件过程只有更改了记录中的一个或多个控件数据时才会发生。

对于绑定控件OldValue 属性在窗体的 AfterUpdate 事件发生后才能设置为新值。即使用户在控件中键入了新值,OldValue 属性设置仍然必须等到数据被保存(记录被更新)之后才能更改。如果取消更新,OldValue 属性值将替换控件中已有的值。

注释  若要实施或简单或复杂的有效性规则,例如在字段中要求一个值或在窗体上验证多个控件,可以使用控件的 ValidationRule 属性以及表中字段和记录的 ValidationRuleRequired 属性。

如果要将窗体的全部有效性验证存储在一个宏组中,或者,如果要让几个窗体使用一个有效性验证表达式,则可以使用 BeforeUpdate 宏。

例如,假定用户在窗体上的“国家/地区”控件中输入了某个国家/地区的名称,并在“邮政编码”控件中输入了该国家/地区的相应邮政编码,则在宏中使用条件表达式可确保在“国家/地区”控件中输入的数据与在“邮政编码”控件中输入的数据相对应,并且当“邮政编码”控件中输入的数据无效时可以显示一条消息。

使用 AfterUpdate 宏,可以显示窗体中的其他页,或者将焦点移至特定控件或记录。例如,当用户在窗体的“类别”控件中输入值时,可以在 AfterUpdate 宏中使用 GoToPage 操作将焦点移至包含该类别控件的窗体页。

可以在 BeforeUpdate 宏中使用 CancelEvent 操作来取消更新。如果 BeforeUpdate 宏附加到某个控件上,则 CancelEvent 操作会将焦点返回到该控件,并且用户输入的数据会留在控件中。

如果 BeforeUpdate 宏附加到某个窗体(每次更改记录时,它会在该窗体中运行),CancelEvent 操作会将焦点返回到该记录。

不能在 AfterUpdate 宏中使用 CancelEvent 操作来取消 AfterUpdate 事件。