Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

5.11.4 Sortieren von ListView-Einträgen

5.11.5 Einträge des ListView-Steuerelements auswählen

Eine Liste wollen Sie natürlich nicht nur zum Ansehen und Sortieren von Daten verwenden, sondern auch zum Auswählen von Daten. Standardmäßig lässt sich dabei nur der erste Eintrag des ListViews markieren. Ein Klick auf die anderen Spalten wirkt sich nicht auf die Markierung aus. Wenn die komplette Zeile markiert werden und auch ein Klick auf andere als die erste Spalte eine Markierung bewirken soll, aktivieren Sie die Eigenschaft FullRowSelect.

Aktuell markierten Eintrag ermitteln

Den Schlüssel des aktuell markierten Eintrags erhalten Sie über folgenden Ausdruck:

.SelectedItem.Key

Mehrere Einträge gleichzeitig markieren

Wenn Sie das gleichzeitige Markieren mehrerer Einträge zulassen möchten, stellen Sie die Eigenschaft MultiSelect auf True ein (VBA) oder aktivieren den entsprechenden Eintrag im Eigenschaftsfenster. Das Steuerelement verfügt dann über die gleiche Mimik wie etwa der Windows-Explorer: Bei gedrückter Umschalttaste können Sie mit zwei Mausklicks auf den ersten und den letzten Eintrag eine Gruppe zusammenhängender Einträge markieren. Einzelne Einträge lassen sich bei gedrückter Strg-Taste aus- oder abwählen.

Auslesen mehrerer markierter Einträge

Zum Auslesen der markierten Einträge in einem ListView mit aktivierter Mehrfachauswahl durchläuft man alle Elemente und prüft jeweils anhand der Eigenschaft Selected, ob das Element markiert ist. Im Code sieht das wie in der folgenden Routine aus:

Private Sub cmdMarkierteEintraegeAnzeigen_Click()
    Dim objListItem As ListItem
    For Each objListItem In lvwPersonen.ListItems
        If objListItem.Selected Then
            Debug.Print objListItem.Key, objListItem.Text, _
                objListItem.ListSubItems(1).Text
        End If
    Next
End Sub

Listing 5.25: Mehrere markierte Einträge auslesen

Spalten eines bestimmten Eintrags lesen

In vielen Fällen ist nicht der Schlüssel eines ListView-Elements interessant, sondern einer der Spaltenwerte. Auf diese greifen Sie über die Text-Eigenschaft zu. Allerdings gibt es Unterschiede beim Zugriff auf die erste und die folgenden Spalten. Die erste Spalte enthält das Standardelement (ListItem), das bereits beim Anlegen des Eintrags mit Text gefüllt wird. Sie lässt sich direkt über die Eigenschaft Text des Eintrags auslesen. Für alle weiteren Spalten müssen Sie die Auflistung ListSubItems mit dem entsprechenden Index bemühen, wobei der Index bei 1 beginnt. Wenn Sie in der obigen Routine nicht nur den Key, sondern auch den Inhalt der beiden Spalten ausgeben möchten, ersetzen Sie die Anweisung in der For Each-Schleife durch die folgende:

Debug.Print objListItem.Key, objListItem.Text, _
    objListItem.ListSubItems(1).Text

Einträge zur Laufzeit hinzufügen

Der bisherige Beispielcode geht davon aus, dass die Einträge beim Öffnen des jeweiligen Formulars angelegt werden. Sie können natürlich auch neue Einträge zur Laufzeit hinzufügen. Dazu legen Sie beispielsweise drei Textfelder wie in Abbildung 5.38 an und hinterlegen für die entsprechende Schaltfläche die folgende Ereignisprozedur:

Private Sub cmdNeuerEintrag_Click()
    Dim objListItem As ListItem
    Set objListItem = lvwPersonen. ListItems.Add(, Me.txtKey, Me.txtVorname)
    objListItem.ListSubItems.Add , , Me.txtNachname

    Set objListItem = Nothing
End Sub

Listing 5.26: Hinzufügen eines neuen Eintrags per Code

Abbildung 5.38: Hinzufügen neuer Einträge zum ListView-Steuerelement

Werte direkt im ListView ändern

Standardmäßig können Sie die erste Spalte eines Eintrags ändern, indem Sie wie im Windows Explorer erst die Zeile markieren und dann nach einer kurzen Wartezeit erneut darauf klicken. Die erste Spalte des Eintrags verwandelt sich daraufhin in ein Eingabefeld, in das Sie den neuen Wert eintragen können. Für eventuelle Aktionen in Zusammenhang mit einer solchen Änderung können Sie die Ereignisse BeforeLabelEdit und AfterLabelEdit verwenden. Wie das funktioniert, erfahren Sie weiter unten in Abschnitt 5.11.6, »ListView-Steuerelement mit Daten füllen«. Andere Spalten als die erste lassen sich leider nicht anpassen.

ListView-Steuerelement stylen

Zum Anpassen des Layouts stellen die Eigenschaften eines ListView-Steuerelements einige Möglichkeiten zur Verfügung. Experimentieren Sie einfach mit einzelnen Einstellungen des Eigenschaftsfensters - das Steuerelement lässt sich sehr flexibel anpassen. Als Starthilfe finden Sie hier eine Auflistung wichtiger Eigenschaften:

  • BorderStyle (Registerseite Allgemein): legt fest, wie der Rand aussieht. Diese Eigenschaft ist nicht mit der im eigentlichen Eigenschaftsfenster identisch, die den Rand des umgebenden OLE-Rahmens festlegt.
  • Appearance (Registerseite Allgemein): legt fest, ob das Steuerelement vertieft oder eben angezeigt wird.
  • Gridlines (Registerseite Allgemein): zeigt ein Gitterraster an, wenn aktiviert.
  • Alignment (Registerseite Spaltenköpfe): Legt die Ausrichtung des Spalteninhalts fest.
  • Width (Registerseite Spaltenköpfe): Legt die Breite der Spalten fest.
  • Symbolindex (Registerseite Spaltenköpfe): Legt fest, welches Symbol aus dem unter Abbildungslisten/Spaltenkopf angegebenen ImageList-Steuerelement der Spaltenkopf enthält.
  • Nächster Abschnitt:

    5.11.6 ListView-Steuerelement mit Daten füllen

    © 2006-2008 André Minhorst Alle Rechte vorbehalten.