ListView-Steuerelement mit Daten füllen

Zusammenfassung

Verwenden Sie das ListView, um Daten aus Tabellen und Abfragen anzuzeigen.

Techniken

ListView-Steuerelement, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

ListView.mdb, MSCOMCTL.msi

André Minhorst, Duisburg

Wie das TreeView-Steuerelement bietet das ListView keine Möglichkeit der direkten Bindung an eine Datenherkunft wie eine Tabelle oder Abfrage. Die einzelnen Datensätze der zugrunde liegenden Datenherkunft müssen Stück für Stück programmatisch zum ListView hinzugefügt werden. Der vorliegende Beitrag zeigt, wie das funktioniert.

Wer das ListView anstelle des herkömmlichen Listenfeldes von Access zur listenartigen Anzeige von in Tabellen gespeicherten Daten verwenden möchte, kommt um den Einsatz von VBA nicht herum. Im folgenden Beispiel erfahren Sie, wie man ein ListView-Steuerelement mit den in einer Tabelle enthaltenen Daten füllt. Als Datenherkunft dient die Tabelle Personal der Nordwind-Datenbank. Das ListView-Steuerelement soll für jeden Mitarbeiter Nachname, Vorname und die Büro-Durchwahl anzeigen.

Bevor Sie das ListView-Steuerelement mit Daten füllen, nehmen Sie einige Einstellungen am Layout des Steuerelements vor. Als Erstes stellen Sie die Eigenschaft View auf der Registerseite Allgemein des Eigenschaftsfensters auf den Wert 3 – lvwReport ein.

Anschließend bereiten Sie das ListView für die Anzeige von drei Spalten je Zeile vor. Dazu wechseln Sie im Eigenschaftsfenster auf die Seite Spaltenköpfe und fügen einige Einträge wie in Bild 1 hinzu.

Dann können Sie schon die VBA-Prozedur für das Füllen des ListView-Steuerelements anlegen. Das ListView soll direkt beim öffnen des Formulars gefüllt werden, also verwenden Sie die Beim Laden-Ereigniseigenschaft.

Die fertige Routine sieht wie in Quellcode 1 aus. Sie deklariert zunächst die für den Datenzugriff benötigten Objekte und instanziert diese. In einer Do While-Schleife durchläuft sie dann alle in der Datensatzgruppe enthaltenen Datensätze.

Und hier kommt der für das ListView interessante Teil: Für jeden Eintrag legt die Routine ein neues ListItem-Element an und referenziert es mit der Objektvariablen objListItem. Das ist nötig, weil ein solches Element allein nur eine Spalte darstellen kann. Die weiteren Felder der Tabelle finden ihren Platz in Elementen der Auflistung ListSubItems des aktuellen Listenelements. Das war es schon – das ListView sollte sich nun etwa wie in Bild 2 präsentieren.

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