Persistente Mehrfachauswahl im Listenfeld

Das Auswählen von Listenfeldeinträgen mit Ein- oder Mehrfachauswahl macht dieses Steuerelement in vielen Fällen zu einer guten Alternative für Unterformulare. Allein das Auslesen der markierten Informationen bereitet den Entwicklern hier und da Probleme. Und schließlich möchten Sie vielleicht auch einmal die ausgewählten Einträge speichern und wiederherstellen – wie dies alles funktioniert, erfahren Sie in diesem Beitrag.

Warum sollten Sie Ihren Anwendern überhaupt eine Mehrfachauswahl per Listenfeld anbietenund diese dann auch noch im gleichen Steuerelement reproduzieren Der beste Grund ist immer ein Beispiel, das einen Anlass liefert. In diesem Beitrag ist das ein kleines Formular, mit dem der Benutzer die Ausstattung eines Fahrzeugs eingeben können soll. Möglichkeiten, dies in der Benutzeroberfläche darzustellen, gibt es genug:

Oft eingesetzt, aber schon vom Datenmodellentwurf her völlig falsch ist die Variante, die einzelnen Eigenschaften als Felder des Fahrzeug-Datensatzes zu speichern und im Formular passende Ja/Nein-Felder anzuzeigen. Eine Aufteilung der Objekte Fahrzeug und Ausstattungsmerkmal auf zwei per m:n-Beziehung verknüpfte Tabellen ist zwingend erforderlich, um folgende Versionen zu realisieren:

  • Anzeige der zugeordneten Ausstattungsmerkmale in einem Unterformular, Auswahl der Eigenschaften per Kombinationsfeld (prinzipiell wie im Bestellungen/Bestelldetail-Formular der Nordwind-Datenbank)
  • Einsatz zweier Listenfelder, von denen das linke alle zugeordneten, das rechte alle nicht zugeordneten Elemente enthält; das Zuordnen erfolgt durch passende Pfeil-Schaltflächen oder Doppelklick auf den zu verschiebenden Eintrag.
  • Einsatz eines einzigen Listenfelds, in dem alle zugeordneten Elemente markiert sind.

Die ersten beiden Varianten sollten bekannt sein (falls nicht: Listenfelder von A-Z, Shortlink 87, und m:n-Beziehungen in Haupt- und Unterformular, Shortlink 452, helfen weiter), Letztere nicht unbedingt. Das liegt vor allem daran, dass es keine offensichtliche Möglichkeit gibt, einmal zugeordnete Datensätze beim nächsten Aufruf automatisch wieder im Listenfeld anzuzeigen.

Dies holt der vorliegende Beitrag nach und fügt Ihrem Repertoire an Darstellungsmöglichkeiten von m:n-Beziehungen eine weitere Alternative hinzu. Eines vorweg: Diese Variante ist nicht unbedingt für riesige Datenmengen geeignet. Das ergibt sich nicht nur aus der Tatsache, dass die Einträge möglichst ohne viel Scrollen sichtbar sein sollen, sondern auch aus der Art der Wiederherstellung der Anzeige – dazu jedoch später mehr.

Beispieltabellen

Als Beispiel dient oben genannte Fahrzeug-Ausstattungsmerkmal-Beziehung, die sich wie in Abb. 1 darstellt und auf drei Tabellen aufteilt.

pic001.tif

Abb. 1: Datenmodell der Beispieldatenbank

Die Anzeige erfolgt in einem Formular namens frmFahrzeuge, dessen Eigenschaft Datenherkunft die Tabelle tblFahrzeuge als Wert aufweist. Für dieses Beispiel reicht die Anzeige der beiden Felder FahrzeugID und Fahrzeug völlig aus.

Viel interessanter ist das Listenfeld mit den Ausstattungsmerkmalen: Zunächst statten Sie es einmal mit der Tabelle tblAusstattungen als Datensatzherkunft aus – mehr brauchen Sie nicht. Das Listenfeld soll das Feld AusstattungID als gebundene Spalte verwenden und den Inhalt des Feldes Ausstattung anzeigen. Dazu stellen Sie die Eigenschaften Spaltenanzahl und Spaltenbreiten auf 2 beziehungsweise 0cm ein.

Mehrfachauswahl

Der Benutzer soll mehrere Einträge des Listenfeldes auswählen können, also stellen Sie die Eigenschaft Mehrfachauswahl auf Einzeln ein. Der Unterschied zur Einstellung Erweitert ist der, dass sich mit Einzeln die Einträge ganz einfach durch einen Klick aus- und abwählen lassen.

Die Einstellung Erweitert hingegen erfordert das Drücken der Umschalt- oder der Steuerungstaste, um mit der Maus mehrere Einträge zu markieren. Dafür können Sie so aber auch mehrere Einträge gleichzeitig auswählen (Umschalt-Taste drücken, ersten Eintrag auswählen, zweiten Eintrag auswählen führt zur Markierung der gewählten und aller dazwischen liegenden Einträge).

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar