Home > Artikel > Ausgabe 8/2012 > ListView-Steuerelement mit Daten füllen

ListView-Steuerelement mit Daten füllen

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Das ListView-Steuerelement soll in den meisten Fällen Daten aus einer Tabelle oder Abfrage anzeigen. Nachdem Sie im Artikel Das ListView-Steuerelement – Grundlagen bereits die grundlegenden Techniken im Umgang mit dem ListView-Steuerelement kennengelernt haben, schauen wir uns in diesem Artikel an, wie Sie ein ListView-Steuerelement mit den Daten einer Tabelle füllen können.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1208_ListView.mdb.

ListView mit Daten der Personal-Tabelle füllen

Wie bereits im Artikel Das ListView-Steuerelement – Grundlagen erläutert, können Sie dem ListView-Steuerelement nicht einfach eine Tabelle oder Abfrage als Datenherkunft zuweisen. Dies ist natürlich erst einmal ein Nachteil gegenüber einem Unterformular in der Datenblattansicht oder einem herkömmlichen Listenfeld, aber wenn Sie den notwendigen Code erst einmal kennen, ist dies auch kein Aufwand mehr.

Spalten einrichten

Wichtig ist zunächst, dass Sie festlegen, welche Spalten der Datenherkunft im ListView-Steuerelements angezeigt werden sollen. Im oben erwähnten Artikel haben Sie auch erfahren, dass es zwei Wege gibt, die Eigenschaften des ListView-Steuerelements zu definieren: über den entsprechenden Dialog oder gleich per VBA.

Wir wollen im ersten Ansatz den Wert des Feldes PersonalID der Tabelle tblPersonal der Beispieldatenbank ausgeben sowie die beiden Felder Vorname und Nachname. Wir benötigen also drei Spalten, die Sie auf zwei Arten anlegen können.

Doch zunächst legen Sie ein neues Formular namens frmListViewMitDatenAusTabelle an und fügen eines neues ListView-Steuerelement hinzu. Geben Sie diesem den Namen lvwPersonal.

Wenn Sie die Spalten über den Eigenschaften-Dialog des ListView-Steuerelements erstellen möchten, klicken Sie mit der rechten Maustaste auf das Steuerelement und wählen den Eintrag ListViewCtrl-Objekt|Properties aus. In diesem Dialog wechseln Sie zur Registerseite ColumnHeaders und legen die Eigenschaften für die erste Spalte an – in diesem Fall den Text und die Spaltenbreite (siehe Bild 1).

Einstellen der Spalten im ListView-Steuerelement

Bild 1: Einstellen der Spalten im ListView-Steuerelement

Die übrigen Eigenschaften kommen hier noch nicht zum Einsatz. Fügen Sie dann mit der Schaltfläche Insert Column zwei weitere Spalten hinzu, die Sie mit den Beschriftungen Vorname und Nachname sowie jeweils mit der Spaltenbreite 3.000 ausstatten.

Das Ergebnis sieht nun wie in Bild 2 aus – Spaltenüberschrift und Spaltenbreite entsprechen den Vorgaben.

ListView-Steuerelement mit Spaltenköpfen, aber noch ohne Inhalt

Bild 2: ListView-Steuerelement mit Spaltenköpfen, aber noch ohne Inhalt

Wenn Sie nun jedoch ein ListView-Steuerelement mit einigen weiteren Spalten ausstatten möchten, wird dies schnell unübersichtlich. Deshalb ist das Einstellen der Spalten und der übrigen Eigenschaften per VBA eine gute Idee: Sie haben dort nämlich die Spalteneigenschaften gleich im Überblick und müssen nicht mühsam im Eigenschaftsfenster navigieren.

Um dies per VBA zu erledigen, wählen Sie im Eigenschaftsfenster des Formulars den Wert [Ereignisprozedur] für die Eigenschaft Beim Laden aus und klicken Sie auf die Schaltfläche mit den drei Punkten (siehe Bild 3). Ergänzen Sie die nun im VBA-Editor erscheinende Prozedur wie in Listing 1.

Hinzufügen einer Ereignisprozedur für das Beim Laden-Ereignis des Formulars mit dem ListView-Steuerelement

Bild 3: Hinzufügen einer Ereignisprozedur für das Beim Laden-Ereignis des Formulars mit dem ListView-Steuerelement

Legen Sie außerdem noch die folgende Deklaration im Modulkopf des Klassenmoduls Form_frmList­View­Mit­Daten­AusTabelle an:

Dim objLvwPersonal As MSComctlLib.ListView

Die ersten Eigenschaften stellen das Aussehen des ListView-Steuerelements ein (View sorgt für die Listenansicht, Appearance stellt ein, dass das Steuerelement nicht vertieft angezeigt wird, BorderStyle entfernt den Rahmen und FlatScrollbar aktiviert die Bildlaufleisten, falls der Inhalt nicht auf einmal angezeigt werden kann. Gridlines aktiviert die Anzeige eines Rasters.

Danach kümmert sich die Prozedur um die Spalten. Diese können mit der Auflistung ColumnHeaders angesprochen, erstellt oder auch gelöscht werden.

Die Clear-Methode entfernt zunächst alle vorhandenen Spalten. Dann fügt die Add-Methode nacheinander die drei gewünschten Spalten hinzu und stellt mit dem dritten und vierten Parameter die Spaltenüberschrift sowie die Spaltenbreite ein.

Mit dem vierten Parameter können Sie noch die Ausrichtung festlegen. Dieser Parameter entspricht der Eigenschaft Alignment, für die Sie die Werte lvwColumnCenter, lvwColumnLeft und lvwColumnRight einstellen können.

ListView-Steuerelement mit Daten füllen

Nun sollen die Daten der drei Felder PersonalID, Vorname und Nachname im List­View-Steuerelement landen. Die dafür notwendigen Anweisungen fügen wir der Übersicht halber in eine eigene Prozedur ein. Diese soll ListViewFuellen heißen und wird ebenfalls beim Laden des Formulars aufgerufen. Dazu fügen Sie der Prozedur Form_Load als letzte Zeile die folgende Anweisung hinzu:

Call ListViewFuellen

Dies löst die Prozedur aus Listing 2 aus.

Private Sub ListViewFuellen()

     Dim db As DAO.Database

     Dim rst As DAO.Recordset

     Dim objListitem As MSComctlLib.ListItem

     Set db = CurrentDb

     Set rst = db.OpenRecordset("SELECT PersonalID, Vorname, Nachname FROM tblPersonal", dbOpenDynaset)

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!