Home > Artikel > Ausgabe 12/2011 > Mehrfachauswahl in Listenfeldern auslesen

Mehrfachauswahl in Listenfeldern auslesen

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Listenfelder bieten im Gegensatz zur Datenblattansicht einen Vorteil: Sie können damit nicht nur einen, sondern auch mehrere Datensätze gleichzeitig auswählen. Dies bringt natürlich auch mehr Aufwand bei der Auswertung mit sich. Dieser Artikel zeigt, welche Auswahlmöglichkeiten Listenfelder liefern und wie Sie die ausgewählten Elemente per VBA-Code identifizieren.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1112_Mehrfachauswahl.mdb.

Einsatzzwecke für die Mehrfachauswahl

Listenfelder unterscheiden sich von Kombinationsfelder dadurch, dass Sie mehrere Datensätze beziehungsweise Einträge gleichzeitig anzeigen können.

Warum diesen Vorteil nicht nutzen und auch gleich noch die Auswahl mehrerer Einträge gleichzeitig anbieten? Die Anwendungszwecke teilen sich auf zwei Bereiche auf, und meistens sind m:n-Beziehungen im Spiel:

  • Auswahl eines oder mehrere Einträge, mit denen eine bestimmte Aktion durchgeführt werden soll, zum Beispiel zum Hinzufügen oder Entfernen von Einträgen aus einer Verteilerliste. Dabei zeigt ein Listenfeld die ausgewählten Einträge an, das andere die nicht ausgewählten Einträge. Die Auswahl der hinzuzufügenden oder zu entfernenden Einträge erfolgt mit der Maus, das Verschieben mit einem Klick auf eine entsprechende Schaltfläche.
  • Darstellung der Elemente einer m:n-Beziehung: Hier kommt nur ein Listenfeld zum Einsatz. Dieses zeigt alle Datensätze der einen Seite der m:n-Beziehung an und aktiviert diejenigen Einträge, die aktuell verknüpft sind. Wenn Sie beispielsweise alle Länder auswählen möchten, in die Sie ein bestimmtes Produkt versenden, wäre dies ein geeignetes Mittel. Voraussetzung ist, dass die Menge der Einträge überschaubar ist, damit auch die markierten Einträge immer sichtbar sind.

Beispieltabellen

Im ersten Beispiel schauen wir uns die Mehrfachauswahl anhand der Tabelle tblPublikationen an, die lediglich aus den beiden Feldern PublikationID und Publikation besteht. Sie enthält einige Beispieldatensätze (siehe Bild 1).

Tabelle tblPublikationen mit Beispieldaten

Bild 1: Tabelle tblPublikationen mit Beispieldaten

Das Formular frmPublikationen enthält ein Listenfeld namens lstPublikationen. Die Datensatzherkunft des Listenfeldes ist auf die Tabelle tblPublikationen eingestellt.

Da alle Felder und alle Datensätze dieser Tabelle angezeigt beziehungsweise als gebundene Spalte verwendet werden sollen, brauchen wir nicht extra eine Abfrage anzulegen, die Felder und/oder anzuzeigende Datensätze einschränkt.

Damit die erste Spalte mit den Werten des Feldes PublikationID nicht angezeigt wird, stellen Sie die Eigenschaften Spaltenanzahl und Spaltenbreiten auf die Werte 2 und 0cm ein. Die erste Spalte wird somit automatisch ausgeblendet und die zweite über die volle Breite des Listenfeldes angezeigt (siehe Bild 2).

Das Formular frmPublikationen mit dem Listenfeld

Bild 2: Das Formular frmPublikationen mit dem Listenfeld

Mehrfachauswahl aktivieren

Die wichtigste Einstellung jedoch steckt im Bereich Andere des Eigenschaftsfensters und heißt Mehrfachauswahl (siehe Bild 3). Sie bietet die folgenden drei Einstellungsmöglichkeiten:

Einstellen der Eigenschaft Mehrfachauswahl

Bild 3: Einstellen der Eigenschaft Mehrfachauswahl

  • Keine: Es kann nur jeweils ein einziger Eintrag markiert werden. Klickt man auf einen anderen Eintrag, wird die Markierung des bis dahin aktivieren Eintrags aufgehoben.
  • Einzeln: Einträge werden durch Anklicken ausgewählt und auch wieder abgewählt. Es kann immer nur ein Eintrag zur gleichen Zeit aus- und abgewählt werden.
  • Erweitert: Funktioniert beim einfachen Anklicken wie bei der Option Keine: Es wird immer nur ein Eintrag markiert.Erst wenn Sie die Steuerungs- oder die Umschalttaste hinzunehmen, passiert mehr: Bei gedrückter Steuerungstaste wählen Sie Einträge wie bei der Option Einzeln aus oder ab. Bei gedrückter Umschalttaste und dem Anklicken zweier Einträge werden alle Einträge vom zuerst bis zum zuletzt markierten Eintrag markiert. Die Option Erweitert liefert also praktisch das gleiche Verhalten wie bei der Ordner- und Dateiauswahl im Windows-Explorer.

Auswerten der Mehrfachauswahl

Interessant wird nun die Auswertung der mit der Mehrfachauswahl festgelegten Einträge. Bei der Einfachauswahl war dies einfach: Dort brauchten Sie nur den Wert des Steuerelements zu referenzieren.

Wenn Sie also in einem Textfeld namens txtPublikation den Wert des gebundenen Feldes PublikationID anzeigen wollten, brauchten Sie der Eigenschaft Steuerelementinhalt dieses Textfeldes einfach nur den Wert =[lstPublikationen] hinzuzufügen. Der Inhalt dieses Feldes wird gleichzeitig mit dem Listenfeld aktualisiert (siehe Bild 4).

Anzeige der ausgewählten Publikation im Textfeld

Bild 4: Anzeige der ausgewählten Publikation im Textfeld

Wenn Sie für die Eigenschaft Mehrfachauswahl den Eintrag Einzeln auswählen, gelingt dies jedoch nicht mehr.

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!