Access Anfänger: ComboBox per VBA füllen

Aus DBWiki
Wechseln zu: Navigation, Suche

In manchen Fällen muss ein Kombinationsfeld zur Laufzeit einer Applikation mittels VBA mit Werten versorgt werden. Der Grund hierfür kann z.B. eine veränderte Grundlage der Auswahldaten sein. Mit dem folgenden Code ist es möglich, die Datensatzherkunft eines sochen DropDown-Feldes zur Laufzeit zu verändern.

In der Annahme, dass der Herkunftstyp der Datensatzherkunft eine Werteliste sein soll und als ausgewählter Wert nicht der angezeigte Text sondern dessen ID aus der zugrundeliegenden Tabelle übernommen werden soll werden folgende Einstellungen benötigt:

Eigenschaft Wert
Herkunftstyp Werteliste
Gebundene Spalte 1
Spaltenanzahl 2
Spaltenbreiten 0cm und 5cm
Dim strListe As String
Dim rs As DAO.Recordset
'Erzeugen des Recordsets - hier befinden sich dann die anzuzeigenden Daten
 
Set rs = CurrentDb.OpenRecordset("SELECT ID_key, Bezeichnung FROM Tabelle WHERE Einschränkung OrderBy Bezeichnung")
 
'Nur weitermachen wenn Daten geliefert wurden
If rs.RecordCount > 0 Then
  Do While Not rs.EOF
    strListe = strListe & rs!ID_key & ";" & rs!Bezeichnung & ";"
    rs.MoveNext
  Loop
 Else
  MsgBox "Es sind keine Daten zum Füllen des Kombifeldes vorhanden!"
  Exit Sub
End If
 
'Festlegen der Eigenschaften für das Kombinationsfeld
Me!cboDaten.RowSourceType = "Value List"
Me!cboDaten.ColumnCount = "2"
Me!cboDaten.ColumnWidths = "0cm;5cm"
Me!cboDaten.BoundColumn = "1"
Me!cboDaten.RowSource = strListe