Home > Artikel > Ausgabe 9/2012 > ListView-Steuerelement: Daten bearbeiten

ListView-Steuerelement: Daten bearbeiten

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

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.

Ändern der in der ersten Spalte angezeigten Daten

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

Inhalt der ersten Spalte ändern

Wenn Sie den Inhalt der ersten Spalte des Listenfeldes ändern möchten, ist dies kein Problem – es muss lediglich die Eigenschaft LabelEdit entweder im Eigenschaften-Dialog des ListView-Steuerelements im Entwurf auf 0-lvwAutomatic einzustellen (siehe Bild 2) oder dies mit der folgenden Zeile in der Prozedur Form_Load durchzuführen:

Eigenschaft für das Verhalten beim Ändern der ersten Spalte

Bild 2: Eigenschaft für das Verhalten beim Ändern der ersten Spalte

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!