AfterUpdate 事件在控件中的数据被改变或记录被更新之后发生。
Private Sub object_AfterUpdate()
object 窗体或控件的名称。
注释
? | AfterUpdate 事件仅适用于窗体上的控件,不适用于报表上的控件。 |
在该事件发生时,若要运行宏或事件过程,请将 AfterUpdate 属性设置为宏的名称或 [事件过程]。
当更新控件或记录时,将会触发 AfterUpdate 事件。在一条记录中,当控件失去焦点或用户按 Enter 或 Tab 时,每个控件中被更改的数据才会更新;当焦点离开记录或用户单击“记录”菜单中的“保存记录”时,整条记录会更新且数据会保存到数据库中。
在窗体的控件中输入新数据或更改数据后,再移到另一条记录或在“记录”菜单上选择“保存记录”来保存记录时,窗体的 AfterUpdate 事件将紧跟着控件的 AfterUpdate 事件发生。移动到其他记录时,控件的 Exit 和 LostFocus 事件发生,紧接着移动到的记录的 Current 事件发生,然后该记录中第一个控件的 Enter 和 GotFocus 事件发生。若要运行 AfterUpdate 宏或事件过程而不运行 Exit 和 LostFocus 宏或事件过程,请用“记录”菜单上的“保存记录”命令保存记录。
AfterUpdate 宏和事件过程仅在控件中的数据更改时才会运行。计算控件中数据的更改不会触发这些事件。窗体的 AfterUpdate 宏和事件过程只有更改了记录中的一个或多个控件数据时才会发生。
对于绑定控件,OldValue 属性在窗体的 AfterUpdate 事件发生后才能设置为新值。即使用户在控件中键入了新值,OldValue 属性设置仍然必须等到数据被保存(记录被更新)之后才能更改。如果取消更新,OldValue 属性值将替换控件中已有的值。
注释 若要实施或简单或复杂的有效性规则,例如在字段中要求一个值或在窗体上验证多个控件,可以使用控件的 ValidationRule 属性以及表中字段和记录的 ValidationRule 和 Required 属性。
如果要将窗体的全部有效性验证存储在一个宏组中,或者,如果要让几个窗体使用一个有效性验证表达式,则可以使用 BeforeUpdate 宏。
例如,假定用户在窗体上的“国家/地区”控件中输入了某个国家/地区的名称,并在“邮政编码”控件中输入了该国家/地区的相应邮政编码,则在宏中使用条件表达式可确保在“国家/地区”控件中输入的数据与在“邮政编码”控件中输入的数据相对应,并且当“邮政编码”控件中输入的数据无效时可以显示一条消息。
使用 AfterUpdate 宏,可以显示窗体中的其他页,或者将焦点移至特定控件或记录。例如,当用户在窗体的“类别”控件中输入值时,可以在 AfterUpdate 宏中使用 GoToPage 操作将焦点移至包含该类别控件的窗体页。
可以在 BeforeUpdate 宏中使用 CancelEvent 操作来取消更新。如果 BeforeUpdate 宏附加到某个控件上,则 CancelEvent 操作会将焦点返回到该控件,并且用户输入的数据会留在控件中。
如果 BeforeUpdate 宏附加到某个窗体(每次更改记录时,它会在该窗体中运行),CancelEvent 操作会将焦点返回到该记录。
不能在 AfterUpdate 宏中使用 CancelEvent 操作来取消 AfterUpdate 事件。