Показать выпадающий список, когда фокус находится в поле со списком - PullRequest
0 голосов
/ 01 января 2019

Можно ли поместить один бит кода в форму доступа, которая будет автоматически отображать раскрывающийся список всякий раз, когда любой комбинированный список в форме имеет фокус?

Я знаю, что могу автоматически отображать раскрывающийся список всякий раз, когдаCombobox имеет фокус, используя событие ниже.Но, если возможно, я бы предпочел не помещать эту строку кода в каждый комбинированный список, поскольку у меня их очень много.

Private Sub combobox_GotFocus()
    'When the combobox receives focus
    'display in drop down position
    Me.combobox.Dropdown
End Sub

В моей базе данных есть десятки форм с десятками комбинаций в каждой форме..

1 Ответ

0 голосов
/ 01 января 2019

Создайте класс с именем cComboBox

Option Compare Database
Option Explicit

Private WithEvents mComboBox As Access.ComboBox

Private Sub mComboBox_GotFocus()
    mComboBox.Dropdown
End Sub

Public Function AddCtl(nCtl As Access.ComboBox) As Access.ComboBox
    Set mComboBox = nCtl
    mComboBox.OnGotFocus = "[Event Procedure]"
    'mComboBox.OnChange = "[Event Procedure]"
    Set AddCtl = mComboBox
End Function

и добавьте следующий код в вашу форму

Option Compare Database
Option Explicit

Dim myCBs As New Collection

Private Sub Form_Load()
Dim myCB As cComboBox

Dim ctl As Access.Control
    For Each ctl In Me.Controls
        If TypeName(ctl) = "ComboBox" Then
            Set myCB = New cComboBox
            myCB.AddCtl ctl
            myCBs.Add myCB
        End If
    Next

End Sub
...