Formulare [basics]: 1:n-Beziehungen mit Listenfeld

Im Artikel Formulare [basics]: 1:n-Daten in Haupt- und Unterformular (www.access-basics.de/648) haben wir gezeigt, wie wir die Daten aus 1:n-Beziehungen in einer Kombination aus Haupt- und Unterformular anzeigen können. Eine ähnliche Ansicht können wir durch die Verwendung eines Listenfeldes erreichen. Dabei verwenden wir das Listenfeld statt des Unterformulars und zeigen darin die Daten der Tabelle mit dem Fremdschlüsselfeld der Beziehung an, die zu dem im Hauptformular angezeigten Datensatz mit dem an der Beziehung beteiligten Primärschlüsselfeld gehören. Das Listenfeld hat einige Vor- und Nachteile gegenüber dem Unterformular in der Datenblattansicht. Welche das sind, besprechen wir ebenfalls in diesem Artikel.

Beispieldatenbank

Die Beispiele dieses Artikels findest Du in der Datenbank FormulareBasics_1nBeziehungenMitListenfeld.accdb.

Beispiel für 1:n-Daten im Listenfeld

Um einen direkten Vergleich zu der Lösung aus dem Artikel Formulare [basics]: 1:n-Daten in Haupt- und Unterformular (www.access-basics.de/648) zu haben, verwenden wir wieder die gleichen Tabellen für die Darstellung. Das heißt, das wir die Daten der Tabelle tblKategorien im Hauptformular darstellen und die Daten der Tabelle tblBuecher im Listenfeld.

Anlegen des Formulars

Das Formular erstellen wir mit dem Ribbon-Eintrag Erstellen|Formulare|Formularentwurf. Dem neuen Formulare fügen wir über die Eigenschaft Datensatzquelle die Tabelle tblKategorien hinzu. Dann ziehen wir die Felder dieser Tabelle in den Detailbereich des Formularentwurfs.

Hinzufügen des Listenfeldes

Danach fügen wir auch schon das Listenfeld zum Formular hinzu. Dazu verwenden wir den Ribbonbefehl Formularentwurf|Steuerelemente|Listenfeld (siehe Bild 1). Nach dem Anklicken des Listenfeldes können wir im Formular einen Rahmen aufziehen, der die Position und die Größe des zu erstellenden Listenfeldes beschreibt.

Hinzufügen eines Listenfeldes

Bild 1: Hinzufügen eines Listenfeldes

Dabei ist zu beachten, dass beim Listenfeld standardmäßig ein Bezeichnungsfeld auf der linken Seite angelegt wird. Dieses ziehen wir gleich nach dem Anlegen allerdings über das Listenfeld. Dieses fassen wir mit der Maus an dem Kästchen an der linken oberen an und ziehen es dann an die gewünschte Stelle (siehe Bild 2).

Verschieben des Bezeichnungsfeldes

Bild 2: Verschieben des Bezeichnungsfeldes

Nun benennen wir das Listenfeld in lstBuecher um. Außerdem stellen wir seine Eigenschaften Horizontaler Anker und Vertikaler Anker beide auf den Wert Beide ein. Die entsprechenden Eigenschaften des Bezeichnungsfeldes werden nun automatisch ebenfalls geändert – diese müssen wir wieder auf die Werte Links und Oben korrigieren.

Außerdem können wir mittlerweile das Formular einmal unter dem Namen frmKategorienBuecherListenfeld speichern.

Listenfeld mit Daten füllen

Zur Ausrichtung der Spalten des Listenfeldes wollen wir es nun erstmals mit Daten füllen. Dazu stellen wir seine Eigenschaft Datensatzherkunft auf die Tabelle tblBuecher ein (siehe Bild 3). Wir wollen allerdings nicht alle Felder dieser Tabelle im Listenfeld anzeigen, also schränken wir diese durch Verwendung einer Abfrage ein. Dazu klicken wir auf die Schaltfläche mit den drei Punkten () neben der Eigenschaft Datensatzherkunft.

Bearbeiten der Datensatzherkunft des Listenfeldes

Bild 3: Bearbeiten der Datensatzherkunft des Listenfeldes

Es erscheint der Entwurf einer Abfrage, die bereits die Tabelle tblBuecher als Datenquelle enthält (siehe Bild 4). Hier ziehen wir die vier Felder BuchID, Buchtitel, Erscheinungsjahr und VerlagID in das Entwurfsraster. Wir können hier auch noch eine Sortierung nach dem Buchtitel einfügen.

Entwurf der Datensatzquelle des Listenfeldes

Bild 4: Entwurf der Datensatzquelle des Listenfeldes

Dann schließen wir den Entwurf mit einem Klick auf den Ribbonbefehl Schließen und bestätigen die nachfolgende Meldung. Die Eigenschaft Datensatzherkunft des Listenfeldes enthält nun den SQL-Ausdruck für die soeben zusammengestellte Abfrage:

SELECT tblBuecher.BuchID, tblBuecher.Buchtitel, tblBuecher.Erscheinungsjahr, tblBuecher.VerlagID FROM tblBuecher;

Wechseln wir nun erstmalig in die Formularansicht, erhalten wir ein Listenfeld, das nur Zahlenwerte anzeigt (siehe Bild 5).

Das Formular in der Formularansicht

Bild 5: Das Formular in der Formularansicht

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

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar