ComboBox.Change 事件 (Access)

指定控件的内容更改时发生的 更改 事件。

语法

表达式改变

表达 一个代表 ComboBox 对象的变量。

备注

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

注意

使用宏或 Visual Basic 设置控件的值并不会触发控件的此事件。 必须直接将数据键入控件,或设置控件的 Text 属性。

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

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

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

Change 事件可能会导致级联事件。 当为响应控件的 Change 事件而运行的宏或事件过程更改控件的内容时,会发生此情况;例如,通过更改确定控件值的属性设置,例如文本框的 Text 属性。 要防止级联事件:

  • 如果可能,请避免将更改控件内容的 Change 宏或事件过程附加到控件上。
  • 避免创建两个或更多控件,这些控件具有影响彼此的 Change 事件;例如,两个相互更新的文本框。

通过使用键盘更改文本框或组合框中的数据,除了控制事件(如 Change 事件)外,还会导致键盘事件发生。 例如,如果移到一条新记录并在该记录的文本框中键入一个 ANSI 字符,则下列事件将按如下顺序发生:

KeyDownKeyPressBeforeInsertChangeKeyUp

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

在组合框中的 限于列表 属性的设置为是,会发生 NotInList 事件后输入不在列表中的值,并尝试移动到另一个控件或保存记录。 它发生在组合框的所有 Change 事件之后。 在这种情况下,组合框的 BeforeUpdateAfterUpdate 事件不会发生,因为 Microsoft Access 不接受不在列表中的值。

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。