Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
In einem gewissen Rahmen bietet das ListView-Steuerelement auch die Möglichkeit, Daten zu bearbeiten. Dazu können Sie beispielsweise den Inhalt der ersten Spalte anklicken, den Eintrag ändern und die änderung übernehmen. Außerdem können Sie mit dem ListView-Steuerelement ein Kontrollkästchen vor jedem Eintrag anzeigen, um die Einträge auszuwählen oder damit ein Ja/Nein-Feld abzubilden. Wie dies gelingt, zeigt der vorliegende Artikel.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1209_ListView.mdb.
Erste Spalte ändern
Im folgenden Beispiel soll der Benutzer direkt im ListView-Steuerelement die in der ersten Spalte angezeigten Daten ändern können. Das setzt voraus, das die erste Spalte auch Daten anzeigt, die man am ehesten schnell mal ändern möchte. Die Folgerung ist, dass die erste Spalte nun nicht mehr den Primärschlüsselwert der zugrunde liegenden Tabelle anzeigen kann. Dieser soll aber in den meisten Fällen ohnehin nicht erscheinen.
Um den Wert des in der ersten Spalte angezeigten Wertes zu ändern, soll der Benutzer diesen einfachen anklicken, damit er wie etwa ein Dateiname im Windows Explorer zur manuellen Bearbeitung vorbereitet wird (siehe Bild 1). Der Benutzer ersetzt dann den vorhandenen Text durch den gewünschten Text und bestätigt die Eingabe durch das Betätigen der Eingabetaste oder anderweitigem Verschieben des Fokus auf ein anderes Element des Formulars.
Bild 1: ändern der in der ersten Spalte angezeigten Daten
Damit das Formular frmListViewDatenAendern mit den angezeigten Daten der Tabelle tblKunden gefüllt wird, deklarieren wir zunächst eine Objektvariable, mit der wir auf die Eigenschaften und Methoden des ListView-Steuerelements zugreifen, im Klassenmodul Form_frmListViewDatenAendern:
Dim objLvwKunden As MSComctlLib.ListView
Dieses wird im Ereignis Form_Load mit den benötigten Eigenschaften versehen (weitere Informationen hierzu in den Artikeln Das ListView-Steuerelement – Grundlagen und ListView-Steuerelement mit Daten füllen). Die Prozedur Form_Load legen Sie an, indem Sie die Formulareigenschaft Beim Laden auf [Ereignisprozedur] einstellen und dann auf die Schaltfläche mit den drei Punkten klicken. Füllen Sie die nun erscheinende Prozedur im VBA-Editor wie folgt auf, um die Basiseinstellungen und Spalteneigenschaften vorzunehmen:
Private Sub Form_Load() Set objLvwKunden = Me!lvwKunden.Object With objLvwKunden .View = lvwReport .Appearance = ccFlat .BorderStyle = ccNone .FlatScrollBar = False .GridLines = True .ColumnHeaders.Clear .ColumnHeaders.Add , , "Firma", 4500 .ColumnHeaders.Add , , "Kundencode", 1500 .ListItems.Clear End With ListViewFuellen objLvwKunden End Sub
Das Füllen des ListView-Steuerelements mit den Daten übernimmt die folgende Prozedur. Diese wird von der Prozedur Form_Load aufgerufen und liest alle Datensätze der Tabelle tblKunden in das Listenfeld ein. Fügen Sie diese Prozedur ebenfalls in das Klassenmodul Form_frmListViewDatenAendern ein (siehe Listing 1).
Private Sub ListViewFuellen(objLvwKunden As ListView) Dim db As DAO.Database Dim rst As DAO.Recordset Dim objListitem As MSComctlLib.ListItem Set db = CurrentDb Set rst = db.OpenRecordset("SELECT KundeID, Firma, Kundencode FROM tblKunden", dbOpenDynaset) Do While Not rst.EOF Set objListitem = objLvwKunden.ListItems.Add(, "k" & rst!KundeID, rst!Firma) With objListitem .ListSubItems.Add , "p1" & rst!KundeID, rst!Kundencode End With rst.MoveNext Loop rst.Close Set rst = Nothing Set db = Nothing End Sub
Listing 1: Füllen des ListView-Steuerelements mit den Daten der Tabelle tblKunden
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo