Home > Artikel > Ausgabe 7/2012 > Das ListView-Steuerelement - Grundlagen

Das ListView-Steuerelement - Grundlagen

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

Neben dem Listenfeld gibt es noch ein weiteres Steuerelement zur Anzeige von Listen: das ListView-Steuerelement. Dieses Steuerelemente ist allerdings kein in Access integriertes Steuerelement, sondern ein ActiveX-Steuerelement. Sie fügen es auf etwas anderem Wege zu einem Formular hinzu und füllen es nicht durch einfaches Zuweisen einer Datensatzherkunft, sondern per VBA. Darüber hinaus bietet es allerdings eine Reihe Möglichkeiten, die das herkömmliche Listenfeld nicht aufweist.

Beispieldatenbank

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

Eigenschaften des ListView-Steuerelements

Das ListView-Steuerelement bietet die folgenden Möglichkeiten:

  • Anzeigen von Icons und Texten
  • Anzeigen von Bildern
  • Ändern der Spaltenbreite zur Laufzeit
  • Verwendung von Drag and Drop
  • Manuelles Ändern des Inhalts (nur erste Spalte)
  • Sortierung per Mausklick

In dieser Artikelreihe sehen wir uns diese und weitere Techniken rund um das ListView-Steuerelement an.

ListView-Steuerelement anlegen

Das ListView-Steuerelement fügen Sie über den Eintrag ActiveX-Steuerelement der Liste der Steuerelemente hinzu. Dies öffnet den Dialog aus Bild 1, wo Sie den Wert Microsoft ListView Control, version 6.0 auswählen. Das ListView-Steuerelement wird zunächst recht klein angelegt (siehe Bild 2), sodass Sie dieses zunächst auf die gewünschte Größe ziehen. Vergeben Sie gleich einen Namen für das neu hinzugefügte Steuerelement. In diesem Beispiel wollen wir die Daten der Tabelle tblPersonal im ListView-Steuerelement anzeigen, also nennen wir das Steuerelement lvwPersonal.

Auswählen des ListView-Steuerelements

Bild 1: Auswählen des ListView-Steuerelements

Ein ListView-Steuerelement direkt nach dem Hinzufügen

Bild 2: Ein ListView-Steuerelement direkt nach dem Hinzufügen

Handhabung des ListView-Steuerelements unter VBA

Einer der wichtigsten Unterschiede zwischen eingebauten Steuerelementen und ActiveX-Steuerelementen ist folgender: Wenn Sie unter VBA mit einem eingebauten Steuerelement arbeiten und dieses etwa mit Me!txtVorname referenzieren, können Sie über IntelliSense gleich auf alle Eigenschaften zugreifen, die für dieses Steuerelement vorgesehen sind. Bei ActiveX-Steuerelementen sieht dies etwas anders aus. Wenn Sie etwa mit Me!lvwPersonal auf das soeben angelegte ListView-Steuerelement zugreifen und dann einen Punkt eintippen, zeigt IntelliSense nur die Eigenschaften an, die alle ActiveX-Steuerelemente gemeinsam aufweisen (siehe Bild 3). Um per VBA und IntelliSense direkt auf die ListView-spezifischen Eigenschaften zuzugreifen, sind einige zusätzliche Schritte nötig. Der erste ist, dass Sie im Klassenmodul des Formulars eine Objektvariable deklarieren, die genau den Typ des ListView-Steuerelements aufweist – etwa so:

Standardeigenschaften von ActiveX-Steuerelementen

Bild 3: Standardeigenschaften von ActiveX-Steuerelementen

Dim objLvwPersonal As MSComctlLib.ListView

Diese Variable müssen Sie nun nur noch mit einem entsprechenden Verweis füllen. Das erledigen Sie direkt beim Öffnen des Formulars, aber nicht in der Ereignisprozedur, die durch das Ereignis Beim Öffnen ausgelöst wird, sondern im Ereignis Beim Laden. Beim Öffnen ist möglicherweise zu früh, gegebenenfalls führt der Zugriff auf ein ActiveX-Steuerelement zu diesem Zeitpunkt zu Problemen. Also legen Sie eine Ereignisprozedur an, die durch das Ereignis Beim Laden des Formulars ausgelöst wird. Dieser Prozedur fügen Sie zunächst nur eine einzige Zeile hinzu, welche die Zuweisung übernimmt:

Private Sub Form_Load()

     Set objLvwPersonal = Me!lvwPersonal.Object

End Sub

Im Gegensatz zu den eingebauten Steuerelementen, bei denen die Zuweisung einfach über einen Verweis wie Me!txtVorname erfolgt, wird der Verweis hier gezielt über die Eigenschaft Object des ActiveX-Steuerelements hinzugefügt. Danach können Sie dann per IntelliSense auf die eigentlichen Eigenschaften des ListView-Steuerelements zugreifen (siehe Bild 4).

Spezielle Eigenschaften des ListView-Steuerelements

Bild 4: Spezielle Eigenschaften des ListView-Steuerelements

Einträge zum ListView-Steuerelement hinzufügen

Nachdem dies erledigt ist, fügen Sie den ersten Eintrag zum ListView-Steuerelement hinzu – zunächst noch nicht auf Basis der Tabelle tblPersonal, sondern durch Übergabe eines Literals mit dem Namen. Fügen Sie dazu die folgenden Zeilen zur obigen Prozedur hinzu:

With objLvwPersonal

     .ListItems.Add 1, "a1", "André Minhorst"

End With

Das ListView-Steuerelement verfügt also über eine Auflistung namens ListItems, der Sie mit der Add-Eigenschaft einen Wert hinzufügen können.

Diese Methode hat die folgenden Parameter:

  • Index: Index-Wert für das Element. Gibt die Position an, an welcher der neue Eintrag hinzugefügt wird.
  • Key: Eindeutiger Wert, muss mit einem Buchstaben beginnen
  • Text: Anzuzeigender Text
  • Icon: Name eines Icons im zugewiesenen ImageList-Steuerelement
  • SmallIcon: Name eines Icons im zugewiesenen ImageList-Steuerelement

Die beiden letzten Parameter sind an dieser Stelle noch nicht relevant, wir kümmern uns später darum.

Reihenfolge beim Anlegen per Index

Zunächst betrachten wir die Wirkung verschiedener Werte für den Parameter Index. Dieser Index beginnt immer mit 1, weshalb Sie beim Hinzufügen des ersten Elements entweder keinen Wert für den Parameter Index angeben oder den Wert 1. Grundsätzlich ist der Wert des Parameters Index für das spätere Einfügen von Elementen sinnvoll. Wenn Sie also etwa bereits ein Element angelegt haben und wollen ein weiteres vor diesem Element hinzufügen, übergeben Sie dem Parameter Index den Wert 1 – dies fügt den neuen Eintrag an der ersten Position ein und verschiebt die übrigen Einträge nach unten.

Wie dies funktioniert, zeigen die folgenden beiden Codezeilen:

objLvwPersonal.ListItems.Add , "a1", _

     "Zuerst hinzugefügt"

objLvwPersonal.ListItems.Add 1, "a2", _

"Später vorn eingeschoben"

Das Ergebnis zeigt Bild 5. Auf die gleiche Weise können Sie Elemente an beliebiger Stelle einschieben.

Einschieben von Elementen im ListView-Steuerelement

Bild 5: Einschieben von Elementen im ListView-Steuerelement

Eigenschaften des ListView-Steuerelements

Nach diesen ersten Schritten werfen wir einen Blick auf das Eigenschaftsfenster eines ListView-Steuerelements. Um dieses zu öffnen, wechseln Sie zur Entwurfsansicht des Formulars und klicken mit der rechten Maustaste auf das ListView-Steuerelement. Wählen Sie aus dem nun erscheinenden Kontextmenü den Eintrag ListViewCtrl-Object|Properties aus, um den Dialog aus Bild 6 zu öffnen. Hier können Sie einige Eigenschaften einstellen. Alle Eigenschaften können Sie allerdings auch per VBA einstellen. Die Auswirkungen der verschiedenen Einstellungen für die Eigenschaften schauen wir uns zu gegebener Zeit an. Zunächst wollen wir nur dafür sorgen, dass das ListView-Steuerelement unsere Daten in Listenform und nicht nebeneinander anzeigt. Dazu stellen Sie die Eigenschaft View auf den Wert lvwReport ein.

Eigenschaften eines ListView-Steuerelements

Bild 6: Eigenschaften eines ListView-Steuerelements

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!