Я нашел это на другом сайте и использовал структуру для своих нужд, но если вы отредактируете ее для своих нужд, она должна работать. Следует отметить, что вы должны вызывать макрос для события UserForm_Intialize
, а не для события CommandButton, чтобы он заново заполнял данные из базы данных каждый раз при загрузке пользовательской формы.
Private Sub UserForm_Initialize()
On Error GoTo UserForm_Initialize_Err
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
cnn.Open "Set Connection String Here"
rst.Open "SELECT ref FROM tblArticles"
rst.MoveFirst
With Me.ComboBox1
.Clear
Do
.AddItem rst![ref]
rst.MoveNext
Loop Until rst.EOF
End With
UserForm_Initialize_Exit:
On Error Resume Next
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
Exit Sub
UserForm_Initialize_Err:
MsgBox Err.Number & vbCrLf & Err.Description, vbCritical, "Error!"
Resume UserForm_Initialize_Exit
End Sub