Change 事件

expandtri全部显示

文本框组合框的文本部分的内容更改时,Change 事件发生。在选项卡控件中从一页移到另一页时,该事件也会发生。

Private Sub object_Change()

Object    控件的名称。

说明

该事件的示例包括直接在文本框或组合框中输入一个字符,或者使用或 Visual Basic 更改该控件的 Text 属性设置。

注释

?使用宏或 Visual Basic 设置控件的值并不会触发控件的 Change 事件。必须直接将数据键入控件,或设置控件的 Text 属性。
?该事件仅适用于窗体上的控件,不适用于报表上的控件。

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

在 Change 事件发生时,通过运行宏或事件过程,可以调整控件中的数据显示。也可以在一个控件中显示数据或公式,而在另一个控件中显示结果。

当计算控件中的值更改时,Change 事件不会发生。

注释  Change 事件可能导致级联事件发生。当为响应控件的 Change 事件而运行的宏或事件过程改变了控件的内容时,这种情况便会发生。例如,当更改决定控件值的属性设置,如文本框的 Text 属性时。为避免级联事件发生,应谨记下面两点:

?如果可能,请避免将 Change 宏或事件过程附加到更改控件内容的控件上。

 

?避免创建两个或多个含有相互影响的 Change 事件的控件,例如,两个互相更新的文本框。

如果使用键盘更改文本框或组合框中的数据,除引起 Change 事件这类的控件事件发生之外,还将导致键盘事件的发生。例如,如果移到一个新记录并在记录的文本框中键入一个 ANSI 字符,则下列事件将按如下顺序发生:

KeyDown → KeyPress → BeforeInsert → Change → KeyUp

文本框或组合框控件的 BeforeUpdateAfterUpdate 事件,发生在输入新数据或在控件中更改了数据后,又移到另一个控件(或单击“记录”菜单上的“保存记录”)之后,因而也在控件的所有 Change 事件之后。

LimitToList 属性设为“是”的组合框中,当输入了列表值以外的值,并试图移到另一个控件或保存记录之后,将发生 NotInList 事件。它发生在组合框的所有 Change 事件之后。在这种情况下,组合框的 BeforeUpdate 和 AfterUpdate 事件不会发生,因为 Microsoft Access 不接受非列表值。