ich habe das Problem dass die Ergebnisse eines ADOQueries nach einem Text-Feld sortieren will dass die Zahlen von 1-100 und weiters die Zahlen-Buchstaben-Kombinationen A1-10, etc. enthält.
Wenn ich die Property ‚Sort‘ verwende bekomme ich (wie auch bei ‚ORDER BY‘ in der SQL-Abfrage) die Sortierung 1,10,11,12…usw anstatt 1,2,3… auf die Buchstaben-Kombinationen kann ich jedoch nicht verzichten.
Ich habe bereits versucht „leading zeros“ in den Recordset einzufügen jedoch will ich nicht, dass diese in der Datenbank stehen. Die Buchstabenkombinationen kann ich per Try…except mit einem „versuchten“ strtofloat ausfiltern.
Ich bin verzweifelt und für jeden Hinweis wie ich die Felder sortieren kann dankbar.
du könntest in deiner Query ein berechnetes Feld abfragen und selbiges zum Sortieren verwenden.
z.B.:
SELECT ID, (val(left$(ID, InStr(ID, "-")-1)) AS HilfsID FROM MyTab
ORDER BY HilfsID;
(möglicherweise reicht als Funktion auch schon
val(ID)
denn meines Wissens bricht VB beim Konvertieren ab, sobald ein nicht-Zahlen-Zeichen kommt.
Ich bezweifele aber, dass die Datenmenge dann noch updatefähig ist (also kein Dataset.Edit, Dataset.Post). Solche Operationen müssten dann über eine weitere Query ausgeführt werden.
Du könntest zu jeder Zahl 100 addieren und dann nach dem
Sortieren die 100 wieder abziehen. Dann erhälst Du die von Dir
gewünschte Reihenfolge.
wo und wie soll das geschehen? Es handelt sich um ein Textfeld in dem auch Buchstaben enthalten sind und dieses Textfeld soll in der Datenbank nicht verändert werden!