在msaccess中创建vba代码,以全局地影响表单上的每个组合框,而不是为每个单独的cbo框创建代码



我在ms访问中有一个带有许多组合框的表单。我想在cb有焦点时查看下拉选项。我可以使用me.cboboxname.dropdown单独完成这项工作。我可以创建一个模块或代码,在每次有焦点时为每个cbo框执行这项工作吗?

使用类,您可以在一个表单中将事件处理程序分配给所有组合框。

在一个单独的类模块中:

类名:Class1

Public WithEvents cmb As Access.ComboBox
Private Sub cmb_GotFocus()
cmb.DropDown
End Sub

表单类模块:

Private collEventHandlers As Collection
Private Sub Form_Load()
Set collEventHandlers = New Collection
Dim ctl As Access.Control
Dim eventHandler As Class1
For Each ctl In Me.Controls
If TypeOf ctl Is Access.ComboBox Then
Set eventHandler = New Class1
Set eventHandler.cmb = ctl
colleventHanlers.Add eventHandler
ctl.OnGotFocus = "[Event Procedure]"
End If
Next
End Sub

最新更新