Das ListView-Steuerelement

Zusammenfassung

Lernen Sie das ListView-Steuerelement kennen, das einige Vorteile gegenüber dem Listenfeld hat, aber auch etwas mehr Programmieraufwand erfordert.

Techniken

ListView-Steuerelement, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

ListView.mdb, MSCOMCTL.msi

André Minhorst, Duisburg

Wer mit Access arbeitet, vermisst manchmal sicher etwas anspruchsvollere Steuerelemente. Beispiel Listenfeld: Dort wäre es doch schön, wenn es eine einfache Möglichkeit zum Sortieren nach den enthaltenen Spalten anbieten würde oder wenn man auch Icons darin unterbringen könnte. Ab der Version 2002 kommt Office standardmäßig mit einigen zusätzlichen Steuerelementen, die Abhilfe schaffen. Ein gutes Beispiel ist das ListView-Steuerelement, das einiges kann, was das Listenfeld nicht bietet.

Die eingebauten Steuerelemente von Access haben den großen Vorteil, dass sie gut auf ihr Einsatzgebiet abgestimmt sind.

So kann man Textfelder, Kombinationsfelder, Listenfelder und andere etwa direkt an Tabellen oder Tabellenfelder binden.

Steuerelemente wie das ListView-Steuerelement sind nicht speziell auf den Einsatz mit Access ausgelegt, aber dennoch für diesen Einsatz mit Access gut geeignet.

Wenn auch beispielsweise das ListView-Steuerelement die Möglichkeit einer direkten Bindung an eine Tabelle oder Abfrage vermissen lässt, bietet es doch so viel mehr Features als das Listenfeld von Access, dass der Aufwand der programmatischen Zuweisung der anzuzeigenden Daten vertretbar erscheint.

Im Vergleich zum Listenfeld können Sie mit dem ListView zum Beispiel Folgendes erledigen:

  • per Mausklick nach einzelnen Spalten sortieren,
  • Icons anzeigen,
  • Bilder anzeigen,
  • umfangreiche Anpassungen am Aussehen vornehmen,
  • die Spaltenbreite manuell zur Laufzeit verändern,
  • Drag and Drop verwenden
  • und (zumindest) den Inhalt der ersten Spalte manuell ändern.
  • In diesem Beitrag erwartet Sie eine Einführung in das ListView-Steuerelement. In weiteren Beiträgen erfahren Sie, wie man dieses Steuerelement mit Daten aus einer Tabelle oder Abfrage füttert (ListView-Steuerelement mit Daten füllen, Shortlink 336), Drag and Drop realisiert (Drag and Drop mit dem ListView-Steuerelement, Shortlink 334) und wie man damit Icons oder Bilder anzeigen kann (Images und Icons im ListView-Steuerelement, Shortlink 335).

    Das ListView-Steuerelement fügen Sie standardmäßig mit dem Dialog ActiveX-Steuerelement einfügen hinzu, den Sie über den Menüeintrag Einfügen/ActiveX-Steuerelement… öffnen.

    Wenn Sie öfter mit diesem Steuerelement arbeiten möchten, fügen Sie einfach einen entsprechenden Eintrag zur Toolbox hinzu (s. Abb. 1).

    Nach dem Hinzufügen des Steuerelements geben Sie ihm direkt einen aussagekräftigen Namen wie etwa lvwPersonen.

    Abb. 1: Einfügen eines ListView-Steuerelements

    Wie bei anderen ActiveX-Steuerelementen stellt der VBA-Editor die Eigenschaften und Methoden nicht automatisch per IntelliSense zur Verfügung. Sie müssen zunächst eine passende Objektvariable deklarieren. Damit diese im kompletten Klassenmodul des Formulars zur Verfügung steht, erfolgt die Deklaration außerhalb der Routinen:

    Dim objListView As ListView

    Füllen lässt sich das ListView-Steuerelement nur via VBA-Code. Zum Füllen des Steuerelements beim öffnen des Formulars eignet sich am besten das Beim Laden-Ereignis. Hier legen Sie zunächst einen Verweis auf das Steuerelement an und weisen diesen der Objektvariablen zu. Anschließend können Sie direkt das erste Element einfügen (s. Quellcode 1).

    Hinweis

    Wenn Sie nicht auf IntelliSense angewiesen sind, können Sie von vornherein direkt auf das Steuerelement zugreifen, anstatt eine Objektvariable mit einem Verweis auf dieses zu erstellen. Sie haben dann nicht das Problem, dass Sie entweder bei jeder Routine, die das ListView-Steuerelement verwendet, einen neuen Verweis darauf erstellen müssen, oder laufen – wenn Sie nur einmal beim öffnen des Formulars die Zuweisung zu einer Objektvariablen vornehmen – keine Gefahr, dass der Verweis einmal verloren geht. Mit Ausnahme des ersten Beispiels verweisen daher alle weiteren Listings direkt auf das Steuerelement und verwenden keine zusätzliche Objektvariable.

    Quellcode 1: Erzeugen eines Verweises auf das ListView-Steuerelement und Hinzufügen eines ersten Elements

    Private Sub Form_Open(Cancel As Integer)
        Dim objListItem As ListItem
        Set objListView = Me.lvwPersonen.Object
        With objListView
            Set objListItem = _            .ListItems.Add(, "a1", "André")
        End With
    End Sub

    Die Elemente eines ListViews werden in der ListItems-Auflistung des Steuerelements erfasst. Mit der Add-Methode dieser Auflistung fügen Sie ein neues Element hinzu. Als Parameter dienen dabei ein Schlüssel, der mit einem Buchstaben beginnen und eindeutig sein muss, sowie der anzuzeigende Inhalt des Elements. In der Objektvariablen objListItem speichern Sie einen Verweis auf das neue Listenelement – den Grund erfahren Sie weiter unten.

    Der erste Blick auf das Steuerelement samt erstem Eintrag in der Formularansicht ernüchtert: Besonders attraktiv ist das nicht geworden (s. Abb. 2).

    Abb. 2: Das ListView-Steuerelement im Mauerblümchen-Look

    Abb. 3: Eigenschaftsfenster des ListView-Steuerelements

    Natürlich gibt es ausreichend Möglichkeiten, das Aussehen anzupassen – dazu jedoch später mehr. Erstmal fügen Sie dem bestehenden Element weitere Zeilen hinzu.

    Und hier kommt die Objektvariable objListItem mit dem Verweis auf das erste Element zum Einsatz: Das ListView-Steuerelement ist nämlich nicht wie beispielsweise das Listenfeld aufgebaut, bei dem jeder Eintrag aus mehreren gleich zu behandelnden Spalten besteht.

    Beim ListView-Steuerelement entspricht eine Zeile einem ListItem-Objekt, das selbst nur den Wert für die erste Spalte speichert.

    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