ListView-Sortierung

Hallo,

In einem Excel-Formular lese ich per SQL Daten aus einer Access-Datenbank ein. Diese werden in einem ListView dargestellt. Nun möchte ich möchte den ganzen Kram spaltenweise sortieren. Sofern es sich dabei um Strings handelt ist ja alles in Ordnung. Nur bei Zahlen stimmt die Sortierung nicht.

Beispielwerte aus einer Spalte: 1,56,10,20,369,22,8
Die Sortierung sieht dann so aus: 1,10,20,22,369,56,8
Soll aber so aussehen: 1,8,10 …

Der Code sieht so aus:

With ListView
.SortKey = ColumnHeader.Index - 1
If .SortOrder = lvwAscending Then
.SortOrder = lvwDescending
Else
.SortOrder = lvwAscending
End If
.Sorted = True
End With

Kann mir jemand helfen ??

Gruß, Martin

Hallo, Martin!

als erstes gebe ich mal zu das ich von diesem Bereich nicht unbedingt *die* Ahnung habe, aber mir fiel die „-1“ in der Zeile
‚.SortKey = ColumnHeader.Index - 1‘ auf.

Was passiert, wenn du die ‚-1‘ weglässt?
Ich glaube du ‚klaust‘ damit das letzte Element.

Grüße, Micha.

P.S.: Sollte ich grade stuss von mir gegeben haben, zerreist mich bitte nich in der Luft, Danke :smile:

Hallo, Martin!

Beispielwerte aus einer Spalte: 1,56,10,20,369,22,8
Die Sortierung sieht dann so aus: 1,10,20,22,369,56,8
Soll aber so aussehen: 1,8,10 …

Sieht wie Du schon festgestellt hast nach Typproblem aus. Das Ding sortiert alphabetisch, nicht numerisch.

Wie kommst Du an die Werte? Welcher Datentyp hat das entsprechende Datenbankfeld? Schreibst Du die Werte zuerst nach Excel? Wie weist Du dem ListView die Datenquelle zu?

Gruß, Manfred

hi

guckst du hier:
http://www.andreavb.com/sponsor0.html

gruss

Hallo, bin es selbst

habe eine Lösung unter http://www.mwvb.de/listview.htm gefunden.
Die Sortierung richtet sich nach dem Datentyp. Habe den Code von dieser Seite getestet und er funktioniert einwandfrei.

Gruß an alle, Martin