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.3 Eigenschaften des ListView-Steuerelements

5.11.4 Sortieren von ListView-Einträgen

Ein großer Vorteil von ListView-Steuerelementen gegenüber dem Access-Listenfeld ist die Möglichkeit, per Klick auf den Spaltenkopf nach dem Inhalt der Spalte zu sortieren. Um dies zu demonstrieren, erweitern Sie zunächst den Code so, dass er dem ListView einige weitere Einträge hinzufügt (wie Sie dies mit Daten aus einer Tabelle durchführen, erfahren Sie weiter unten):

Private Sub Form_Load(Cancel As Integer)
    Dim objListItem As ListItem

    Set objListItem = objListView.ListItems.Add(, "a0", "André")
    objListItem.ListSubItems.Add , , "Minhorst"
    Set objListItem = objListView.ListItems.Add(, "a1", "Sascha")
    objListItem.ListSubItems.Add , , "Trowitzsch"
    Set objListItem = objListView.ListItems.Add(, "a2", "Michael")
    objListItem.ListSubItems.Add , , "Forster"
    Set objListItem = objListView.ListItems.Add(, "a3", "Frieda")
    objListItem.ListSubItems.Add , , "Flechler"
    Set objListItem = Nothing
    
End Sub

Listing 5.23: ListView-Steuerelement mit mehreren Einträgen füllen

Das Sortieren nach dem Inhalt einer bestimmten Spalte soll durch einen Klick auf den entsprechenden Spaltenkopf ausgelöst werden. Das ListView-Steuerelement stellt dazu die Ereigniseigenschaft ColumnClick zur Verfügung. Sie legen ein solches Ereignis genau wie beim TreeView-Steuerelement direkt im VBA-Editor über die beiden Kombinationsfelder des Codefensters an. Bei einem Klick auf den Spaltenkopf sollen die enthaltenen Einträge immer aufsteigend sortiert werden. Einzige Ausnahme: Wenn die Spalte unmittelbar vorher schon aufsteigend sortiert war, soll nun eine absteigende Sortierung vorgenommen werden. Die folgende Routine hat zwei statische Variablen - das sind als Static deklarierte Variablen, deren Gültigkeit auch nach Verlassen der Prozedur erhalten bleibt -, die sich sowohl die zuletzt sortierte Spalte als auch die verwendete Sortierreihenfolge merken.

Private Sub lvwPersonen_ColumnClick(ByVal ColumnHeader As Object)
    Static intAktuelleSortierspalte As Integer
    Static bolAufsteigend As Boolean
    objListView. SortKey = ColumnHeader.Index - 1
    If intAktuelleSortierspalte = ColumnHeader.Index - 1 Then
        bolAufsteigend = Not bolAufsteigend
        objListView. SortOrder = Abs(bolAufsteigend)
    Else
        objListView.SortOrder = lvwAscending
    End If
    objListView. Sorted = True
    intAktuelleSortierspalte = ColumnHeader.Index - 1
End Sub

Listing 5.24: Sortieren der Spalten im ListView-Steuerelement

Das ListView-Steuerelement übergibt der Ereignisprozedur beim Klicken auf einen der Spaltenköpfe ein ColumnHeader-Objekt, das unter anderem die Eigenschaft Index enthält. Diese gibt an, auf welche Spalte der Benutzer geklickt hat. Dies ist die erste Information, die Sie zum Sortieren nach einer Spalte benötigen. Die Routine weist den Spaltenindex der Eigenschaft SortKey des ListView-Steuerelements zu:

objListView.SortKey = ColumnHeader.Index - 1

Im nächsten Schritt prüft die Routine, ob die aktuell zu sortierende Spalte auch die zuletzt sortierte Spalte ist. Falls ja, wird die Sortierreihenfolge umgedreht, in der statischen Variablen bolAufsteigend gespeichert und die Spalte nach der neuen Sortierreihenfolge sortiert. Ist diese Spalte nicht als letzte Spalte sortiert worden, erfolgt auf jeden Fall eine aufsteigende Sortierung. Mit der folgenden Anweisung aktiviert die Routine schließlich die Sortierung:

objListView.Sorted = True

Damit die Routine bei der nächsten Sortierung noch weiß, welche Spalte in diesem Durchgang sortiert wurde, erfolgt eine entsprechende Zuweisung an die statische Variable intAktuelleSortierspalte.

Nächster Abschnitt:

5.11.5 Einträge des ListView-Steuerelements auswählen

© 2006-2008 André Minhorst Alle Rechte vorbehalten.