ich hatte das Thema schonmal hier gepostet, war aber wohl zu ungenau, also kommt es hier nochmals ausführlicher:
Ich lese mittels ADO aus einer Datenbank ein Recordset ein, in dem die Firmenstandorte einer Firma gespeichert sind:
Set rsCompany = New ADODB.Recordset
rsCompany.CursorLocation = adUseClient
rsCompany.CursorType = adOpenStatic
rsCompany.LockType = adLockBatchOptimistic
rsCompany.Open "Select * FROM Firmenstandorte;", oConn
Set rsCompany.ActiveConnection = Nothing
als nächsten Schritt lese ich die Firmenstandorte in ein normales Array ein, um das Ganze danach in eine Combobox zu packen:
Public AlleAdressen()
Public Sub main()
'Dieses Modul wird benutzt, um in der Initialisierung alle Firmenadressen
'in einer Combobox anzuzeigen. wird in AlleAdressen() zwischengespeichert
Dim anzahlZeilen As Integer
Dim anzahlSpalten As Integer
rsCompany.MoveLast
rsCompany.MoveFirst
anzahlZeilen = rsCompany.RecordCount
anzahlSpalten = rsCompany.Fields.Count
ReDim AlleAdressen(anzahlZeilen - 1, anzahlSpalten - 1)
For i = 0 To anzahlZeilen - 1
For j = 0 To anzahlSpalten - 1
AlleAdressen(i, j) = rsCompany.Fields(j)
Next
rsCompany.MoveNext
Next
End Sub
im Formular, in dem die Combobox angezeigt werden soll, schreibe ich das Array in die Combobox. In der Combobox ist Boundcolumn = 1 angegeben, da in dieser Spalte die eindeutigen ID's für die Firmenstandorte stehen. Dann lese ich mittels einer Suchfunktion die ID des Firmenstandorts aus, die für den betreffenden Anwender in der Datenbank hinterlegt ist, und will die Combobox dann auf diesen Wert "voreinstellen".
Private Sub UserForm_Initialize()
Dim i As Integer
Dim test As Integer
cboBoxAllAdresses.List = AlleAdressen
For i = 1 To cboBoxAllAdresses.ListCount
MsgBox "Datensatz " & cboBoxAllAdresses.List(i - 1, 0) & cboBoxAllAdresses.List(i - 1, 3) & " hinzugefügt"
Next
test = rsSearchPersonalData("FirmenstandortID")
cboBoxAllAdresses.Value = test
End Sub
Das funktioniert alles gut und schön, bis auf den letzten Punkt... hier bekomme ich immer die Meldung "Eigenschaft Value konnte nicht gesetzt werden. Ungültiger Eigenschaftenwert". In meinem Beispiel liefert meine Suchfunktion
rsSearchPersonalData("FirmenstandortID")
den Wert 14 zurück, der auch in der "test"-Variable gespeichert wird. Aber die Value-Eigenschaft lässt sich einfach nicht festlegen... selbst wenn ich die Zuweisung direkt gebe:
cboBoxAllAdresses.Value = 14
ebenfalls kein Erfolg, obengenannte Fehlermeldung erscheint wieder.
Ich bitte hier um Hilfe, da ich schon seit Tagen nicht mehr voran komme...