window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Listenfeldauswahl speichern und wiederherstellen

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Wie Sie die durch einen Benutzer ausgewählten Einträgen im Listenfeld auslesen, haben Sie bereits im Artikel “Mehrfachauswahl in Listenfeldern auslesen” erfahren. In diesem Folgeartikel geht es darum, eine solche Auswahl auf Basis der in einer Tabelle gespeicherten Daten wieder herzustellen. Dazu müssen wir diese Auswahl jedoch erst einmal speichern – und später kümmern wir uns um die Reproduktion

Beispieldatenbank

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

Listenfeldauswahl ganz einfach

Normalerweise können Sie Listenfelder, genau wie Kombinationsfelder, mit einer Datensatzherkunft versehen (also etwa mit einer Tabelle oder Abfrage, welche die Daten liefert) und das Steuerelement über die Eigenschaft Steuerelementinhalt an ein Feld einer weiteren Tabelle binden.

Ein Beispiel ist die Auswahl einer Anrede für einen Kunden. Normalerweise verwenden Sie hier ein Kombinationsfeld, aber Sie können dies – ausreichend Platz vorausgesetzt – auch mit einem Listenfeld erledigen. Der Vorteil ist, dass man alle zur Auswahl stehenden Einträge direkt sehen kann – zumindest, wenn es nicht mehr Einträge gibt, als das Listenfeld im sichtbaren Bereich anzeigen kann (siehe Bild 1). Das Listenfeld ist mit der Tabelle tblAnreden als Datensatzherkunft ausgestattet und es ist an das Feld AnredeID der im Formular angezeigten Tabelle tblKunden gebunden. Damit das Listenfeld nur die Anrede, nicht aber die Werte des Feldes AnredeID anzeigt, stellen Sie die Eigenschaften Spaltenanzahl und Spaltenbreite auf die Werte 2 und 0cm ein. So wird das erste Feld mit der AnredeID ausgeblendet. Dieses muss aber dennoch als gebundene Spalte vorliegen: Access sucht nämlich in der Tabelle tblAnreden nach dem Datensatz, dessen als gebundene Spalte angegebenes Feld den gleichen Wert enthält wie das in der Eigenschaft Steuerelementinhalt angegebene Feld, also das Feld AnredeID der Tabelle tblKunden.

Lookup-Daten per Listenfeld auswählen

Bild 1: Lookup-Daten per Listenfeld auswählen

Damit haben Sie gleich zwei Fliegen mit einer Klappe geschlagen: Erstens wird die Auswahl so automatisch gespeichert und zweitens wird sie beim Anzeigen eines Datensatzes auch gleich wieder hergestellt.

Mehrfachauswahl speichern

Schauen wir uns nun an, wie sich dies für die Mehrfachauswahl realisieren lässt. Wenn Sie dies mit der Mehrfachauswahl durchführen, ist der Aufwand schon erheblich höher.

Als Beispiel verwenden wir das Zuweisen von Publikationen zu Kunden, als eine Art Verteilerliste. Dazu benötigen wir drei Tabellen: erstens eine Tabelle tblKunden zum Speichern der Kundendaten, zweitens die Tabelle tblPublikationen und noch eine dritte Tabelle, mit der wir die Publikationen den Kunden zuweisen. Damit realisieren wir eine m:n-Beziehung zwischen den Tabellen tblKunden und tblPublikationen. Dies bedeutet, dass wir über die dritte Tabelle, die wir schlicht tblVerteiler nennen, jede Publikation jedem Kunden zuordnen können. Das Datenmodell sieht wie in Bild 2 aus. Dabei enthält die Tabelle tblVerteiler zwei Fremdschlüsselfelder, mit denen Sie je Datensatz einen Eintrag der Tabelle tblKunden und einen Eintrag der Tabelle tblPublikationen auswählen können. Damit kein Kunde eine Publikation doppelt erhält, haben wir außerdem einen eindeutigen Index für die beiden Felder PublikationID und KundeID festgelegt (siehe Bild 3).

Eindeutiger Index für die Kombination aus Kunde und Publikation

Bild 2: Eindeutiger Index für die Kombination aus Kunde und Publikation

Datenmodell für den Publikationsverteiler

Bild 3: Datenmodell für den Publikationsverteiler

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar