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

Listenfelder mit Mehrfachauswahl auslesen

In Listenfeldern kann man unter bestimmten Voraussetzungen nicht nur einen, sondern auch mehrere Eintrge auswhlen. Natrlich ist das Auslesen der ausgewhlten Eintrge dann auch nicht mehr ganz so trivial wie bei der Einfachauswahl. Lesen Sie hier, wie es funktioniert.

Beispieldatenbank

Das nachfolgend beschriebene Beispielformular frmListenfeldMehrfachauswahl finden Sie in der Beispieldatenbank Listenfeld.zip.

Mehrfachauswahl per Listenfeld

Es gibt zwei verschiedene Einstellungen fr die Eigenschaft Mehrfachauswahl von Listenfeldern, mit denen Sie eine Mehrfachauswahl erreichen knnen: Einzeln und Erweitert.

Bei der Variante Einzeln knnen Sie einen Eintrag per Mausklick aktivieren oder deaktivieren, aber niemals mehrere Eintrge gleichzeitig markieren - etwa durch gleichzeitiges Drcken der Umschalt- oder der Steuerungstaste.

Dies erlaubt erst die Einstellung Erweitert. Ohne Verwendung zustzlicher Schaltflchen wird hier nur jeweils der zuletzt angeklickte Eintrag aktiviert. Wenn Sie beim Auswhlen die Umschalttaste gedrckt halten, werden alle Eintrge markiert, die zwischen dem zuerst und dem zuletzt angeklickten Eintrag liegen - inklusive dieser beiden Eintrge.

Etwas differenzierter geht es mit gedrckter Steuerungstaste: Damit simulieren Sie praktisch den Modus Einzeln, der aktuell angeklickte Eintrag wird also je nach derzeitigem Zustand entweder aktiviert oder deaktiviert.

Zustzlich knnen Sie beim Modul Erweitert noch durch Ziehen eines imaginren Rahmens zwischen dem ersten und dem letzten gewnschten Eintrags mehrere Eintrge markieren.

Auslesen mehrerer markierter Eintrge

Interessant wird es beim Auslesen der markierten Eintrge. Dazu stellt das Listenfeld eine Auflisting namens ItemsSelected, die Werte des Typs Variant enthlt.

Die folgende Ereignisprozedur liest nach jeder Aktualisierung die ID's der markierten Eintrge aus und trgt sie in das Textfeld txtMitarbeiter ein:

Private Sub lstMitarbeiter_AfterUpdate()

    Dim var As Variant

    Dim str

    For Each var In Me.lstMitarbeiter.ItemsSelected

        str = str & ";" & var

    Next var

    Me!txtMitarbeiter = Mid(str, 2)

End Sub

 

© 2003-2015 André Minhorst Alle Rechte vorbehalten.