Control 对象代表其他控件中的或附加到其他控件的窗体、报表或节上的控件。
窗体或报表上的所有控件都属于该 Form 或 Report 对象的 Controls 集合。特定节中的控件属于该节的 Controls 集合。选项卡控件或选项组控件中的控件属于相应控件的 Controls 集合。附加到其他控件的标签控件属于所附控件的 Controls 集合。
引用 Controls 集合中的单个 Control 对象时,既可以隐式又可以显式地引用 Controls 集合。
' Implicitly refer to NewData control in Controls
' collection.
Me!NewData
' Use if control name contains space.
Me![New Data]
' Performance slightly slower.
Me("NewData")
' Refer to a control by its index in the controls
' collection.
Me(0)
' Refer to a NewData control by using the subform
' Controls collection.
Me.ctlSubForm.Controls!NewData
' Explicitly refer to the NewData control in the
' Controls collection.
Me.Controls!NewData
Me.Controls("NewData")
Me.Controls(0)
注释 仅当从类模块的代码中引用窗体或报表时,才可以使用 Me 关键字来代表 Form 或 Report 对象。从标准模块、不同窗体或报表的模块中引用报表或窗体时,必须使用对该窗体或报表的完整引用。
每个 Control 对象都由特定的固有常量表示。例如固有常量 acTextBox 与文本框控件相关联,acCommandButton 与命令按钮相关联。各种 Microsoft Access 控件的常量在控件的 ControlType 属性中设置。
若要确定现有控件的类型,请使用 ControlType 属性。不过,不必了解控件的特定类型即可在代码中使用控件。只需用 Control 数据类型的变量来表示它即可。
如果了解所引用的控件的数据类型,并且该控件是内置的 Microsoft Access 控件,则应该使用特定类型的变量来代表该控件。例如,如以下代码所示,如果知道特定的控件是文本框之后,则可以声明一个 TextBox 类型的变量来表示该控件。
Dim txt As TextBox
Set txt = Forms!Employees!LastName
注释 如果控件是 ActiveX 控件,则必须声明 Control 类型的变量来代表该控件,不能使用特定的控件类型。如果不能确定变量要指向哪种类型的控件,请将变量的类型声明为 Control。
选项组控件可以在其 Controls 集合中包含其他控件,包括选项按钮、复选框、切换按钮以及标签控件。
选项卡控件包含一个 Pages 集合,这是一种特殊类型的 Controls 集合。Pages 集合包含全部为控件的 Page 对象。反过来,每个 Page 对象又包含一个 Controls 集合,该集合包含该页中所有的控件。
其他 Control 对象有一个包含附加标签的 Controls 集合。这些控件包括文本框、选项组、选项按钮、切换按钮、复选框、组合框、列表框、命令按钮、绑定对象框以及未绑定对象框控件。