Hej! Låter som att det sparas som text i databasen, ändra det till tal så blir sorteringen rätt. Problemet är att jag ser nu att jag har på vissa artiklar -S, -M ändelser, dvs 10109-S, då kan jag inte ha nummer i databasen.. Då finns det inget jättebra sätt. Är det möjligt att skapa en kolumn till där du lagrar sifferdelen av artikelnumret? Om det går så skulle jag gjort så och sorterat på den kolumnen. <b>Problemet är att jag ser nu att jag har på vissa artiklar -S, -M ändelser, Här kommer ett krystat exempel på hur du kan gå tillväga med nuvarande datalagringslösning.Access databas sortering
Detta är säkert en enkel fråga men sökt runder en hel del utan bra svar.
Jag har en databas med fältet "artnummer", där finns nummer som t.ex. 9485 och 10109 osv. Nu har jag även 20209 t.ex. när jag tar ORDER BY artnummer DESC eller ASC blir inte sorteringen rätt.
Jag vil ha att det högsta talet 20209 ska stå först, därefter 10109 och sen 9485, men problemet är att den tar första siffran och därefter sorterar, finns det något enkelt sätt att "summera" talet först och sen sortera?
Tack på förhand!Sv: Access databas sortering
JohanSv:Access databas sortering
Sv: Access databas sortering
JohanSv:Access databas sortering
dvs 10109-S, då kan jag inte ha nummer i databasen..</b>
En ide
Skulle du inte kunna tänka dig att lagra dom som decimaltal
där du använder Asciikoden för S o M mfl .
Då skulle tex 10109-S kunna bli 10109,83 (-S) 10109,77 (-M)
med en enkel Funktion återställer du sedan till önskat format för visning.Sv: Access databas sortering
Vet inte om det är möjligt att skriva så i ACCESS.
Troligen inte bra för stora datamängder, testa och se.
Använder inte ACCESS, risk för syntaxfel, otestad.
Kan behövas ett -1 i Left funktionens lengthparameter, ifall den läser en position för långt.
<code>
ORDER BY CInt(Iif(InStr(artnummer, "-") > 0, Left(artnummer, InStr(artnummer, "-")), artnummer))
</code>