Gewusst wie: füllen einer ComboBox mit einem Recordset über VBA

Gibt es einige Literatur zur Verfügung zu expert-exchange und teck Republik über die Verwendung des combobox.recordset-Eigenschaft zum füllen einer combobox in einem Access-Formular.

Diese Steuerelemente sind in der Regel gefüllt mit einem "SELECT *" string in der "rowsource" Eigenschaften des Steuerelements verweisen auf eine Tabelle oder Abfrage zur Verfügung, die auf der client-Seite der app. Wenn ich auf display-server-Seite Daten in eine combobox erstelle ich eine temporäre lokale Tabelle und den import angeforderten Datensätze. Dies ist zeitaufwendig, besonders bei großen Tabellen.

In der Lage mit einem recordset füllen eines combobox-Steuerelements erlauben würde, dem Benutzer direkt anzeigen der Daten von der server-Seite.

Inspiriert von den 2 vorherigen Beispiele, ich schrieb einige code wie folgt:

Dim rsPersonne as ADODB.recordset
Set rsPersonne = New ADODB.Recordset

Set rsPersonne.ActiveConnection = connexionActive
rsPersonne.CursorType = adOpenDynamic
rsPersonne.LockType = adLockPessimistic
rsPersonne.CursorLocation = adUseClient

rsPersonne.Open "SELECT id_Personne, nomPersonne FROM Tbl_Personne"

fc().Controls("id_Personne").Recordset = rsPersonne

Wo:

  • connexionActive: ist meine ständige ADO-Verbindung zu meinem Datenbank-server
  • (fc): ist meine aktuelle/aktive form
  • controls("id_Personne"): ist die
    combobox-Steuerelement zu füllen mit
    Mitarbeiter von Unternehmen Liste
  • Access-version 2003

Leider, es funktioniert nicht!

Im debug-Modus bin ich in der Lage zu überprüfen, ob das recordset wird korrekt erstellt, die gewünschten Spalten und Daten, und richtig verbunden auf das combobox-Steuerelement. Leider, wenn ich das Formular anzeigen, bekomme ich immer eine leere combobox, ohne Einträge! Jede Hilfe wird sehr geschätzt.

EDIT:

Dieser recordset-Eigenschaft ist in der Tat für die spezielle combobox-Objekt, nicht für die standard-Steuerelement-Objekt, und ich war sehr überrascht zu entdecken, dass es vor ein paar Tagen.
Ich habe bereits versucht die combobox-callback-Funktion, oder zum Auffüllen einer Liste mit der "addItem" - Methode des combobox. Alle diese sind zeitintensiv.

Schreibe einen Kommentar