在更新控件或记录时,将触发 BeforeUpdate 事件。在一条记录中,当控件失去焦点或用户按 Enter 或 Tab 时,每个控件中更改的数据都将更新。当焦点离开该记录或用户单击“记录”菜单上的“保存记录”时,整条记录都将得到更新,并且数据将保存在数据库中。
在窗体的某一控件中输入新数据或更改数据后,再移到另一条记录或通过单击“记录”菜单上的“保存记录”保存该记录时,窗体的 AfterUpdate 事件将紧跟着该控件的 AfterUpdate 事件发生。移动到另一条记录时,该控件的 Exit 和 LostFocus 事件发生,接着指针移到的记录的 Current 事件发生,然后该记录中第一个控件的 Enter 和 GotFocus 事件发生。若要运行 AfterUpdate 宏或事件过程而不运行 Exit 和 LostFocus 宏或事件过程,请使用“记录”菜单上的“保存记录”命令保存记录。
只有在更改了控件中的数据时,才会运行 BeforeUpdate 宏和事件过程。当计算控件中的值发生更改时,此事件不会发生。只有在更改了记录中一个或多个控件的数据时,才会运行窗体的 BeforeUpdate 宏和事件过程。
对于窗体,可以使用 BeforeUpdate 事件在移到另一记录之前取消对记录的更新。
即使用户在控件中键入了新值,仍必须等到保存数据(更新记录)后 OldValue 属性设置才会更改。如果取消更新,OldValue 属性值将替换控件中的现有值。