ListView-Steuerelement: Kontrollkästchen nutzen

Im Gegensatz zum in Access eingebauten Listenfeld-Steuerelement kann das ListView-Steuerelement auch ein Kontrollkästchen vor jeder Zeile anzeigen. Das ist eine wirklich praktische Funktion, wenn Sie Datensätze für verschiedene Aktionen auswählen möchten oder einfach einen bestimmten Status darstellen wollen. Dieser Artikel zeigt, welche Varianten es zur Darstellung des Kontrollkästchens gibt und wie Sie dieses aktivieren oder deaktivieren und es an Daten eines Feldes binden.

Beispieldatenbank

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

Kontrollkästchen anzeigen

Für das erste Beispiel fügen Sie einfach einem Formular ein ListView-Steuerelement hinzu und stellen seine Eigenschaft Name auf den Wert lvwKontrollkaestchen ein (siehe Formular frmKontrollkaestchenEinfach in der Beispieldatenbank).

Die Eigenschaften stellen wir, da sich das ListView-Steuerelement ohnehin nur per VBA-Code füllen lässt, direkt komplett per VBA ein – das Eigenschaftsfenster dieses Steuerelements lassen wir damit außen vor. Wenn Sie das Formular in der Entwurfsansicht öffnen, wählen Sie im Eigenschaftsfenster den Eintrag Formular aus, stellen für die Eigenschaft Beim Laden den Wert [Ereignisprozedur] ein und klicken auf die Schaltfläche mit den drei Punkten.

Die nun im VBA-Editor erscheinende leere Prozedur ergänzen Sie wie folgt und tragen außerdem die Deklarationszeile für das Objekt zum Referenzieren des ListView-Steuerelements oben im Modul ein:

Dim objLvwKontrollkaestchen As MSComctlLib.ListView
Private Sub Form_Load()
     Set objLvwKontrollkaestchen = _
         Me!lvwKontrollkaestchen.Object
     With objLvwKontrollkaestchen
         .View = lvwReport
         .Appearance = ccFlat
         .BorderStyle = ccNone
         .FlatScrollBar = False
         .GridLines = True
         .ColumnHeaders.Clear
         .Checkboxes = True
         .ColumnHeaders.Add , , "Listeneinträge", 5000
         .ListItems.Clear
         .ListItems.Add , , "Eintrag 1"
         .ListItems.Add , , "Eintrag 2"
         .ListItems.Add , , "Eintrag 3"
     End With
End Sub

Ein Wechseln in die Formularansicht liefert nun das ListView-Steuerelement aus Bild 1. Die Prozedur stellt dazu beim Laden des Formulars zunächst einige Eigenschaften zur Definition des Aussehens ein und legt die Anzahl der Spalten sowie die Spaltenüberschrift und -breite fest.

Kontrollkästchen und erstes Feld in einer Spalte

Bild 1: Kontrollkästchen und erstes Feld in einer Spalte

Danach folgt bereits die entscheidende Eigenschaft: Mit .Checkboxes = True aktivieren Sie die Anzeige der Kontrollkästchen in der linken Spalte. Danach fügt die Prozedur noch drei Beispieleinträge zum ListView-Steuerelement hinzu.

Kontrollkästchen per Code aktivieren

Wenn Sie gleich beim öffnen des Formulars einen Eintrag ankreuzen möchten, müssen Sie den betroffenen Eintrag mit einer wie folgt deklarierten Objektvariablen referenzieren:

Dim objListItem As MSComctlLib.ListItem

Dieser Variablen weisen Sie den Eintrag dann gleich beim Anlegen zu:

Set objListItem = .ListItems.Add(, , "Eintrag 1")

Damit können Sie dann schließlich die Checked-Eigenschaft auf den Wert True einstellen, um den Eintrag anzuhaken:

objListItem.Checked = True

Um den Eintrag wieder zu deaktivieren, stellen Sie die gleiche Eigenschaft auf False ein:

objListItem.Checked = False

Checkbox-Zustand ermitteln

Wie finden Sie nun heraus, ob die Checkbox eines Eintrags angehakt ist oder nicht Im Direktfenster gelingt dies beispielsweise wie folgt, wenn Sie nur den Index des betroffenen Eintrags kennen (der Index beginnt mit der Zahl 1):

 Forms!frmKontrollkaestchenEigeneSpalte!lvwKontrollkaestchen.ListItems(2).Checked

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar