Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Listenfelder mit Einfachauswahl auslesen

Eine der wichtigsten Mglichkeiten von Listenfeldern ist es, dass man einen Eintrag markieren und diesen auslesen kann - wenn es ein muss, Spalte fr Spalte. Wie das funktioniert, erfahren Sie in diesem Beitrag.

Beispieldatenbank

Das nachfolgend beschriebene Beispielformular finden Sie in der Beispieldatenbank ListenfeldEinfachauswahl.zip.

Einfachauswahl per Listenfeld

Bevor Sie Daten aus einem Listenfeld auswhlen knnen, mssen Sie dieses zunchst einmal mit Daten fllen. Im vorliegenden Beispiel soll das Listenfeld die Eintrge der Personal-Tabelle der Nordwinddatenbank anzeigen. Dazu stellen Sie die Eigenschaft Datensatzherkunft des Listenfeldsteuerelements auf den Namen der entsprechenden Tabelle ein.

Damit das Listenfeld die ID, den Vornamen und den Nachnamen der einzelnen Mitarbeiter anzeigt, stellen Sie die Eigenschaften Spaltenanzahl und Spaltenbreiten auf die Werte 3 und 1cm;2cm;2cm ein.

Um zu zeigen, wie man auf die Eintrge eines Listenfeldes mit Einfachauswahl zugreifen kann, sollen die einzelnen Informationen des Listenfeldes nach dem Auswhlen eines neuen Eintrags in weiteren Textfeldern angezeigt werden. Bild 1 zeigt, wie dies aussehen kann.

Bild 1: Das Listenfeld und einzelne Informationen zum ausgewhlten Eintrag.

Listenfeld auslesen

Nun fehlt noch der Zugriff auf die einzelnen Spalten des aktuell markierten Eintrags im Listenfeld. Zu Testzwecken kann man dies vom Direktfenster aus tun. Die ID des aktuellen Eintrags geben Sie beispielsweise mit folgender Anweisung aus:

? Forms!frmListenfeldEinfachauswahl!lstMitarbeiter

Das hiermit der Inhalt der ersten Spalte ausgegeben wird, ist kein Zufall: Wird wie hier einfach nur der Listenfeldname angegeben, ist das die Kurzform fr folgenden Befehl:

? Forms!frmListenfeldEinfachauswahl!lstMitarbeiter.Value

Und dieser wiederum gibt den Wert der Spalte aus, die mit der Eigenschaft Gebundene Spalte festgelegt wurde - in diesem Fall steht hier die Zahl 1 fr erste Spalte. Manchmal soll die erste Spalte explizit nicht angezeigt, aber dennoch als Wert des Listenfeld verwendet werden. Dann enthlt die Eigenschaft Gebundene Spalte weiterhin den Wert 1, aber fr die Eigenschaft Spaltenbreiten muss die erste Breite auf den Wert 0 beziehungsweise 0cm eingestellt werden. Auf diese Weise wird die erste Spalte ausgeblendet.

Zugriff auf eine bestimmte Spalte

Wenn Sie nicht nur auf die gebundene, sondern auf eine beliebige Spalte zugreifen mchten, verwenden Sie die Columns-Auflistung des Listenfeld-Steuerelements.

Die folgende Anweisung gibt genau wie die weiter oben vorgestellten Anweisungen den Inhalt der ersten Spalte aus:

? Forms!frmListenfeldEinfachauswahl!lstMitarbeiter.Column(0)

Da der Index der Auflistung bei 0 beginnt, verwenden Sie fr die erste Spalte den Index 0, fr die zweite Spalte den Index 1 und so weiter.

Das Formular der Beispieldatenbank enthlt eine Ereignisprozedur, die nach dem Aktualisieren des Listenfeldes ausgelst wird und den Inhalt des Listenfeldes in die drei im unteren Teil befindlichen Textfelder schreibt:

Private Sub lstMitarbeiter_AfterUpdate()

    Me!txtMitarbeiter = Me!lstMitarbeiter

    Me!txtVorname = Me!lstMitarbeiter.Column(1)

    Me!txtNachname = Me!lstMitarbeiter.Column(2)

End Sub

Wie Sie eine solche Ereignisprozedur anlegen, erfahren Sie im Beitrag Anlegen von Ereignisprozeduren.

Innerhalb des zum Formular gehrenden Klassenmoduls knnen Sie statt des Ausdrucks Forms!frmListenfeldEinfachauswahl den Ausdruck Me als Referenz auf das Formular verwenden.

© 2003-2015 André Minhorst Alle Rechte vorbehalten.