PDA

Vollständige Version anzeigen : numerisch korrekt sortieren


immelmann
29.04.2002, 11:00
Hallo,
in meinem ListView möchte ich per ColumnClick die Sortierreihenfolge der Spalte ändern. Klappt wunderbar.
Nur nicht die eigentliche Reihenfolge bei Zahlen, d.h. 150 kommt vor 8.
Ich fülle die Liste zuerst per SQL (ORDER BY ID DESC) - dort stimmt die Reihenfolge. Nun will ich aber nicht bei jedem Click auf die Spaltenüberschrift ein neues SQL-Statement ausführen und die Liste füllen.

Hat jemand ähnliche Erfahrungen? Danke für Anregungen.
PS: In der OH steht sinngemäß, daß man besser eine neue Abfrage ausführen soll, anstatt die SortOrder-Geschichte zu verwenden.

Gruß Torsten

Debus
30.04.2002, 12:18
Kannst Du das Problem bitte nochmal ein bisschen anders formulieren.

Gruß Holger

immelmann
30.04.2002, 13:03
Hallo,
das Ereignis ColumnClick lässt als Sortierung nur auf-/absteigend zu. Und zwar nicht mathematisch korrekt, sondern alphabetisch.
Konkret: zuerst alle Zahlen die mit "1" anfangen und dann die mit "2". Demzufolge erscheint "150" vor "3", obwohl 3<150 !!

Beim ersten formularaufruf erstelle ich ein Recordset per SQL und lege dabei "aufsteigend" fest. In diesem RS ist die richtige Reihenfolge enthalten und damit fülle ich meine Liste.

Klicke ich jedoch auf die Spaltenüberschrift, um die Sortierung zu ändern, so wird nicht mehr mathemtisch sortiert.

Gruß Torsten

Sandrine
30.04.2002, 13:48
Bin mir nicht ganz sicher, ob ich Dich richtig verstanden habe, aber vielleicht hilft Dir das hier weiter:

TIP: Vorsicht bei Zahlen in Textfeldern!
----------------------------------------
Versionen: Access 2.0, 95, 97 und 2000

Wenn Sie Zahlen aus Textfeldern auslesen und diese
vergleichen oder in Berechnungen zugrunde legen
moechten, kann das zu unerwarteten Ergebnissen
fuehren. Beispiel:

Select Case txtSample.Text
Case 1 to 12
MsgBox "Zahl zwischen 1 und 12 eingegeben..."
Case Else
MsgBox "Andere Zahl eingegeben..."
End Select

Hier wuerden Sie erwarten, dass bei der Eingabe
einer Zahl zwischen "1" und "12" die Meldung "Zahl
zwischen 1 und 12 eingegeben..." angezeigt wird –
dies ist aber nicht der Fall! Die Meldung wird nur
fuer die Zahlen "1", "10", "11" und "12"
angezeigt! Das liegt daran, dass Access den oben
gezeigten Vergleich "1 to 12" auf Basis einer
Zeichenkette durchfuehrt – dabei fallen Zahlen wie
"2" oder "7" durch, da sie nicht mit "1" beginnen.
Um solche Fehler zu vermeiden, setzen Sie die
Val()-Funktion ein. Diese konvertiert den
Feldinhalt in einen numerischen Wert, der dann
korrekt verglichen wird:

Select Case Val(txtSample.Text)
Case 1 to 12
MsgBox "Zahl zwischen 1 und 12 eingegeben..."
Case Else
MsgBox "Andere Zahl eingegeben..."
End Select

Gruß, Sandra

dänu
07.10.2002, 13:38
auch ich möchte, dass die sortierung nach korrekt nach zahlen funzt (wie immelmann beschrien hat).
kann jemand helfen?
grüsse
dänu

<Hubi>
21.10.2002, 10:11
Hallo,

eine Lösung könnte folgender Code aus dem VB-Archiv sein. Hab´s allerdings noch nicht unter Access ausprobiert. <a href="http://www.vbarchiv.net/archiv/tipp_details.php?pid=299" target="_blank">http://www.vbarchiv.net/archiv/tipp_details.php?pid=299</a>

Gruß Hubert