Listenfelder von A-Z

André Minhorst, Duisburg

Die Möglichkeiten der Darstellung von Daten lassen sich grob in zwei Arten einteilen: Die Darstellung mehrerer Datensätze gleichzeitig in Listenform und die Anzeige der Details zu einem bestimmten Datensatz. Eine Kombination der beiden Varianten ist die Anzeige einer Liste mit mehreren Datensätzen und unterschiedlichen Feldern. Unter Access gibt es drei Möglichkeiten zur Realisierung einer solchen Anzeige: die meist in Form von Unterformularen verwendete Datenblattansicht, die Anzeige der Datensätze per Endlosformular sowie ein spezielles Steuerelement namens Listenfeld. Im vorliegenden Beitrag erfahren Sie, wie Sie letzteres zur Datenanzeige verwenden können und was sich noch alles damit bewerkstelligen lässt.

Listenfelder unterscheiden sich in einem wesentlichen Punkt von den beiden anderen Möglichkeiten zur Anzeige von Daten in Listenform: Die angezeigten Daten können nicht direkt im Listenfeld geändert werden. Sie können zwar einen Eintrag auswählen und seine Detaildaten in einem separaten Formular anzeigen und dort bearbeiten, über den gleichen Weg neue Datensätze anlegen oder Datensätze über eine Ereignisprozedur löschen – aber das Listenfeld selbst dient nur der Anzeige und der Auswahl von Datensätzen.

In der Auswahl von Daten liegt einer der großen Vorteile von Listenfeldern: Im Gegensatz zu Daten in der Endlos- und Datenblattansicht von Formularen bieten sie die Möglichkeit der Mehrfachauswahl.

Die im vorliegenden Beitrag beschriebenen Beispiele beziehen sich sämtlich auf die Tabellen der Nordwind-Datenbank. Wenn Sie schnell mit den Beispielen loslegen möchten, erstellen Sie einfach eine neue leere Datenbank und importieren dann die Tabellen aus der Nordwind-Datenbank.

Zum Kennenlernen der wichtigsten Eigenschaften von Listenfeldern legen Sie ein neues Listenfeld an.

Dazu benötigen Sie zunächst ein neues Formular in der Entwurfsansicht. Das Listenfeld finden Sie in der Toolbox, die Sie auf mehreren Wegen einblenden können:

  • durch Mausklick mit der rechten Maustaste in das Formular und anschließende Auswahl des Eintrages Toolbox
  • über den Menübefehl Ansicht ( Toolbox
  • über die Schaltfläche Toolbox in der Symbolleiste
  • In der Toolbox finden Sie die Schaltfläche Listenfeld, mit der Sie auf zwei Arten ein neues Listenfeld erstellen können:

  • durch einfachen Klick auf die Schaltfläche und anschließendes Aufziehen des Listenfeldes in der gewünschten Größe (s. Abb. 1)
  • per Drag & Drop der Schaltfläche in den Formularentwurf
  • Abb. 1: Anlegen eines neuen Listenfeldes

    Hier ist die erste Variante zu bevorzugen, da Sie direkt die Größe des Listenfeldes festlegen können.

    Access fügt neuen Listenfeldern immer unmittelbar ein Bezeichnungsfeld hinzu. Manchmal ist das nützlich, aber in der Regel möchten Sie das Bezeichnungsfeld (wenn Sie überhaupt eines benötigen) in eine andere Position relativ zum Listenfeld bewegen.

    Das funktioniert nur, wenn Sie das Bezeichnungsfeld markieren und es dann mit dem Mauszeiger über das schwarze Viereck oben links nehmen und verschieben.

    Da das Nerven kostet, löschen Sie am besten das Bezeichnungsfeld und erstellen ein neues, das nicht an das Listenfeld gebunden ist und sich unabhängig platzieren lässt. Am schnellsten geht das durch Markieren des Bezeichnungsfeldes und Betätigen der Tastenkombinationen Strg + X und Strg + V (ausschneiden und einfügen).

    Datensatzherkunft

    Mit den beiden Eigenschaften Datensatzherkunft (engl. RowSource) und Herkunftstyp (engl. RowSourceType) legen Sie Art und Aussehen der zugrunde liegenden Daten fest.

    Die Eigenschaft Herkunftstyp kennt dabei drei Werte:

  • Tabelle/Abfrage
  • Wertliste
  • Feldliste
  • Alle drei erfordern die Angabe einer Information für die Eigenschaft Datensatzherkunft.

    Es gibt noch eine vierte Variante, für die das nicht gilt: Wenn Sie eine Funktion zum Festlegen der anzuzeigenden Daten verwenden, geben Sie den Funktionsnamen für die Eigenschaft Herkunftstyp an und lassen die Eigenschaft Datensatzherkunft leer.

    Funktionen zum Füllen von Kombinations- und Listenfeldern müssen einem ganz bestimmten Format entsprechen. Weitere Informationen hierzu finden Sie in dem Beitrag Kombinations- und Listenfelder füllen in der Ausgabe 4/2002 oder im PDF-Format auf der Heft-CD.

    Tabellen und Abfragen

    Wenn Sie für die Eigenschaft Herkunftsart den Wert Tabelle/Abfrage auswählen, müssen Sie für die Eigenschaft Datensatzherkunft das gewünschte Objekt aus einer Liste auswählen (s. Abb. 2).

    Alternativ können Sie eine eigene Abfrage erstellen, indem Sie auf die Schaltfläche mit den drei Punkten (…) klicken. Nach der Erstellung der Abfrage können Sie diese wie eine ganz normale Abfrage speichern oder einfach die resultierende SQL-Anweisung als Wert der Eigenschaft beibehalten.

    Feldlisten

    Die beiden Eigenschaften ermöglichen die für manche Fälle wichtige Anzeige aller Felder einer Tabelle. Stellen Sie die Eigenschaft Herkunftsart auf den Wert Feldliste und die Eigenschaft Datensatzherkunft auf den Namen der gewünschten Tabelle ein.

    Abb. 2: Datensatzherkunft eines Listenfeldes

    Wertlisten

    Wertlisten enthalten einen oder mehrere Werte, die nicht an Datenobjekte wie Tabellen oder Abfragen gebunden sind. Wenn die Eigenschaft Herkunftsart auf Wertliste eingestellt ist, können Sie der Eigenschaft Datensatzherkunft die gewünschten Daten in Form einer durch Semikola getrennten Liste zuweisen.

    Spalten des Listenfeldes

    In der Grundeinstellung zeigen Listenfelder Daten nur in einer Spalte an. Da die Datensatzherkunft aber oft mehr als nur eine Spalte enthalten wird, können Sie die Konfiguration der Spalten mit den Eigenschaften Spaltenanzahl und Spaltenbreiten vornehmen.

    Abb. 3: Listenfeld mit Artikelnummer und -name

    Wenn Sie beispielsweise die Felder Artikel-Nr und Artikelname der Tabelle Artikel in einem Listenfeld anzeigen möchten, stellen Sie die Spaltenanzahl auf den Wert 2 und die Spaltenbreiten auf den Wert 1cm;3cm ein (s. Abb. 3).

    Wenn Sie mehrere Spalten anzeigen, können Sie auf die Angabe der Breite für die letzte Spalte verzichten. Die Breite der letzten Spalte ergibt sich immer durch die Differenz aus der Breite des Listenfeldes und der Gesamtbreite der anderen Spalten. Das gilt nicht, wenn die Listenfeldbreite so klein ist, dass mindestens die letzte Spalte nicht mehr angezeigt wird – in diesem Fall erscheint eine Bildlaufleiste, mit der Sie zu den nicht sichtbaren Spalten scrollen können.

    Reihenfolge der angezeigten Felder

    Listenfelder verwenden für die Felder immer die in der Datensatzherkunft vorgefundene Reihenfolge. Wenn Sie also beispielsweise einige Felder der Tabelle Artikel anzeigen möchten, aber in einer anderen Reihenfolge als dort angegeben, müssen Sie zunächst eine Abfrage mit den Feldern in der richtigen Reihenfolge erstellen.

    Spaltenüberschriften

    In manchen Fällen macht es Sinn, die Feldnamen in Form von Spaltenüberschriften anzuzeigen. Dazu müssen Sie lediglich die Eigenschaft Spaltenüberschriften auf den Wert Ja setzen.

    Spaltennamen sind allerdings oft eher zweckmäßig als schön und sollen dem Anwender sicher nicht als Spaltenüberschrift eines Listenfeldes präsentiert werden. Daher gibt es zwei Möglichkeiten:

  • Sie verzichten auf die eingebauten Spaltenüberschriften und verwenden stattdessen über dem Listenfeld angeordnete Bezeichnungsfelder.
  • Sie bearbeiten die Datensatzherkunft so, dass eine ansprechende Spaltenüberschrift herauskommt.
  • Der erste Vorschlag bietet designtechnisch sicher eine Menge mehr Möglichkeiten, während der zweite sicher leichter zu realisieren ist.

    Geben Sie einfach im Entwurf der Datensatzherkunft (also der Tabelle oder der Abfrage) den gewünschten Wert für die Eigenschaft Beschriftung des Feldes an.

    Wenn Sie als Herkunftsart nicht Tabelle/Abfrage gewählt haben, müssen Sie bei Aktivieren der Spaltenüberschriften beachten, dass jeweils der erste Eintrag bzw. die ersten Einträge (bei mehreren Spalten) der Datensatzherkunft als Spaltenüberschrift verwendet wird bzw. werden.

    Ausblenden von Spalten

    Wenn Sie nicht alle Felder der Datensatzherkunft im Listenfeld anzeigen möchten, können Sie einzelne Felder ausblenden. Dazu müssen Sie lediglich die Spaltenbreite für die auszublendenden Spalten auf den Wert 0cm setzen.

    Mehrfachauswahl

    Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
    Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
    Zur Bestellung ...
    Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
    Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar