"Sortering på tal i tekstfelter sorteres lidt anderledes end man kunne forvente."
Nej faktisk ikke, den gør det helt rigtige. Man har jo netop fortalt det er en tekst kolonne. Den tager karakter for karakter og tjekker hvilken er størst. Hvis man har "Abe" og "B" i to kolonne er der ikke nogle som er i tvivl om hvilken kommer først. Hvis der står "100" og "9" vil 100 være mindre end 9 da den føste karakter "1" kommer før "9" i alfabetet (Ascii tabellen).
Ja, jeg kan godt se logikken i det. Men umiddelbart kan det måske undre, at 100 er større end 9 i den ene kolonne og ikke i den anden. Hvis du kan følge mig...
strSQLE = "SELECT * FROM elementer WHERE projektid = '" & id & "' ORDER BY int(status) ASC" Set rz = Conn.Execute(strSQLE)
får jeg denne fejl meddelelse:
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket. /acomma2/admin.asp, line 1478
Hvis projektid er defineret som tal i tabellen skal der ikke ping ' omkring, det er kun for tekst kolonner der skal ' omkring. Status er så vidt jeg husker også et reserveret ord så der skal [] omkring.:
strSQLE = "SELECT * FROM elementer WHERE projektid = " & id & " ORDER BY int([status]) ASC"
Det forstår jeg ikke helt prøv med uden [] omkring. Har du nogle records hvor der ikke er et tal i kolonnen?
strSQL = "SELECT * FROM elementer WHERE projektid = " & id & " ORDER BY Cint(status) ASC"
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.