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

Listenfelder füllen, Teil 1: Tabelle als Datensatzherkunft

Listenfelder sind eine sinnvolle Alternative zu Datenblattansichten, Unterformularen und Daten im Detailbereich, wenn der Benutzer die angezeigten Inhalte nicht unbedingt bearbeiten soll. Es gibt einige Möglichkeiten, ein Listenfeld zu bevölkern. In dieser Beitragsreihe lernen Sie alle Möglichkeiten kennen.

Beispieldatenbank

Die Beispieldatenbank enthält alle in dieser Beitragsreihe vorgestellten Beispiele.

Listenfeld mit Tabelle oder Abfrage als Datensatzherkunft

Optimalerweise enthält die Datenbank eine Tabelle oder eine Abfrage, die als Datensatzherkunft des Listenfeldes dienen kann. In den meisten Fällen ist aus Performance-Gründen eine Abfrage vorzuziehen. Die einzige Ausnahme setzt voraus, dass das Listenfeld die Inhalte aller Felder der zugrunde liegenden Tabelle auch anzeigen oder enthalten soll.

Um ein Listenfeld mit einer Tabelle oder einer Abfrage als Datensatzherkunft zu erstellen, geht man folgendermaßen vor:

  1. Anlegen des Listenfeldes durch einen Mausklick auf die entsprechende Schaltfläche der Toolbox und anschließendes Klicken auf die gewünschte Position im Formularentwurf
  2. Einstellen der Eigenschaft Datensatzherkunft des Listenfeldsteuerelements

Beim Einstellen der Datensatzherkunft bestehen die Möglichkeiten, eine bestehende Tabelle oder Abfrage auszuwählen oder mit der rechts neben dem Eigenschaftsfeld erscheinenden Schaltfläche einen geeigneten Abfrageentwurf zusammenzustellen.

Damit auch die Inhalte von Datensatzherkünften mit mehr als einem Feld im Listenfeld sichtbar sind, muss man noch zwei Eigenschaften ändern:

Die Eigenschaft Spaltenanzahl enthält die Anzahl der Felder der Datensatzherkunft, die das Listenfeld anzeigen soll.
Die Eigenschaft Spaltenbreite enthält die Breiten der einzelnen Spalten.

Dabei ist folgendes zu beachten: Die meisten Listenfelder basieren auf Tabellen oder Abfragen mit einem Primärindexfeld, dessen Inhalt bei der Auswahl eines Datensatzes im Listenfeld für die weitere Verarbeitung benötigt wird - beispielsweise, um eine Detailansicht des ausgewählten Datensatzes zu öffnen oder einen Datensatz zu löschen. Der Primärindex ist aber in der Regel für den Anwender völlig uninteressant und soll daher nicht im Listenfeld sichtbar sein.

Um das zu realisieren, bezieht man das entsprechende Feld zwar in die Datensatzherkunft des Listenfeldes ein, legt aber dessen Spaltenbreite auf den Wert 0 fest. Da der Primärschlüssel in der Regel das erste beziehungsweise das ganz links befindliche Feld ist, stellt man die Eigenschaft Spaltenbreiten beispielsweise auf den Ausdruck 0;2cm;2cm;... ein.

Beispiel: Anzeige von Artikeln im Listenfeld

Um die vorhergehenden Ausführungen zu verdeutlichen, erstellt man ein Listenfeld mit zwei Feldern der Tabelle Artikel der Nordwinddatenbank als Datensatzherkunft. Die verwendete Abfrage zur Reduzierung der Datensatzherkunft auf die beiden gewünschten Felder sieht folgendermaßen aus:

SELECT Artikel.[Artikel-Nr], Artikel.Artikelnamen FROM Artikel;

Die Artikelnummer sei für den Anwender in diesem Fall uninteressant, daher soll das Listenfeld sie nicht anzeigen, aber dennoch als gebundene Spalte enthalten. Dazu stellt man die Eigenschaft Spaltenanzahl auf den Wert 2 und die Eigenschaft Spaltenbreiten auf den Wert 0cm;5cm ein.

Alternativ kann man für die Einstellung der Spaltenbreiten in diesem Fall auch die Einstellung 0cm verwenden. Die zweite Spalte nimmt dann einfach die verbleibende Spaltenbreite ein. Abbildung 1 zeigt die Eigenschaften für das Listenfeld im Detail.

Abbildung 1: Eigenschaften eines Listenfeldes

In der Formularansicht sieht das Listenfeld wie in Abbildung 2 aus. Die Artikelnummer ist zwar nicht im Listenfeld sichtbar, aber dennoch vorhanden. Den Beweis liefert ein einfacher, im Testfenster abgesetzter Befehl:

Debug.Print Forms!frmArtikel!lstArtikel

Als Ausgabe erhält man den Wert der gebundenen Spalte des Formulars, in dem Fall die aktuell ausgewählte Artikelnummer.

Abbildung 2: Listenfeld in Aktion

© 2003-2015 André Minhorst Alle Rechte vorbehalten.