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

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2006.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

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

Das ListView-Steuerelement

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.

Möglichkeiten des
ListView-Steuerelements

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).

    Steuerelement einfügen

    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

    ListView-Steuerelement füllen

    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.

    Der Inhalt weiterer Spalten wird in Elementen der ListSubItems-Auflistung des Listenelements verwaltet.

    Daher benötigen Sie auch einen Verweis auf das Listenelement, um weitere Spalten hinzuzufügen. Die folgende Anweisung fügt eine zweite Spalte hinzu (in einer Zeile):

    objListItem.ListSubItems.Add , , 
    "Minhorst"

    Im Vergleich zu den "Hauptlistenelementen" benötigt ein ListSubItem nur die Angabe des enthaltenen Textes. Die anderen Parameter kann man zunächst außer Acht lassen.

    Möchte man sich nun den neuen Eintrag in der Formularansicht ansehen, wird man enttäuscht: Das ListView-Steuerelement zeigt nach wie vor nur eine einzige Spalte an.

    Nun wird es Zeit, sich um die Eigenschaften des ListView-Steuerelements zu kümmern.

    Eigenschaften des ListView-Steuerelements

    ActiveX-Steuerelemente haben meist ein zusätzliches Eigenschaftsfenster, das sich über das Kontextmenü öffnen lässt. Beim ListView-Steuerelement sieht das wie in Abb. 3 aus.

    Hier ändern Sie den Wert der Eigenschaft View auf 0-lvwReport, damit die Daten wie etwa in der Dateiliste des Windows Explorers angezeigt werden. In der Formularansicht zeigt das ListView-Steuerelement nun gar keine Daten mehr an.

    Der Grund ist, dass auf der Registerseite Spaltenköpfe noch keine Spalten angelegt sind (s. Abb. 4).

    Abb. 4: Ein frisch eingefügtes ListView-Steuerelement zeigt nur die Basisspalte an. Weitere Spalten muss man erst sichtbar machen.

    Abb. 5: ListView-Steuerelement mit zwei Spalten inklusive Spaltenköpfen

    Abb. 6: Einfügen einer Ereignisprozedur für ein Steuerelement

    Klicken Sie also auf die Schaltfläche Spalte einfügen. Von den nun aktivierten Textfeldern brauchen Sie nur zwei: Mit Text legen Sie die Spaltenüberschrift fest und mit Width stellen Sie die gewünschte Breite der zweiten Spalte ein. Legen Sie zwei Spalten für die Anzeige des Vornamens und des Nachnamens an und konfigurieren Sie die Breite entsprechend den vorhandenen Daten.

    Nun sieht das ListView-Steuerelement schon besser aus (s. Abb. 5).

    Sortieren von Einträgen

    Ein schöner Vorteil von ListViews gegenüber dem Access-Listenfeld ist die Möglichkeit, per Klick auf den Spaltenkopf nach dem Inhalt der Spalte zu sortieren.

    Um dies zu demonstrieren, erweitern Sie zunächst den Code so, dass er dem ListView einige weitere Einträge hinzufügt (s. Quellcode 2).

    Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sind Sie Abonnent?Jetzt einloggen ...
     

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.