Das Abfüllen von List- bzw. ComboBox in UserForms soll über eine zentrale Prozedur gesteuert werden, da die Daten von einer Access-Datenbank gewonnen werden.
Public Sub InitializeCobx(ByVal Cobx As MSForms.Control, ByVal Table As String, ByVal Field As String)
Dim objRecset As ADODB.Recordset
Dim i As Integer
Dim vArray() As Variant
OpenConnectionMDB
Set objRecset = New ADODB.Recordset
objRecset.Open Table, objConnMDB, adOpenKeyset, adLockOptimistic
i = 0
Do Until objRecset.EOF
ReDim Preserve vArray(i)
vArray(i) = objRecset.Fields(Field).Value
i = i + 1
objRecset.MoveNext
Loop
objRecset.Close
Call QuickSortVariants(vArray, LBound(vArray), UBound(vArray))
For i = LBound(vArray) To UBound(vArray)
Cobx.AddItem vArray(i)
Next
Set objRecset = Nothing
objConnMDB.Close
End Sub
PROBLEM: Die Prozedur wird im UserForm_Initialize aufgerufen. Gestern klappte es problemlos, heute hingegen wird mit contr ein leeres String übergeben. Aber auch wenn ich im zweiten Aufruf auf contr verzichte und die komplette Bezeichnung der ComboBox übergebe, wird ein "" übergeben. Woran könnte das liegen - jetzt bin ich am Limit.
Private Sub UserForm_Initialize()
Dim contr As ComboBox
With Me
.lbl_ExtPartner.Visible = False
.cobx_ExtPartnerName.Visible = False
End With
Set contr = Me.cobx_Department
Call InitializeCobx(contr, "tblDepartment", "DeptName")
Call InitializeCobx (frmNewHR.cobx_ExtPartnerName, "tblExtPartner", "ExtPartnerName")
End Sub
Vielen Dank für die Hilfe