Sorteren

Status
Niet open voor verdere reacties.

cosimaro

Gebruiker
Lid geworden
15 okt 2008
Berichten
94
Hallo,

ik kom er niet uit. Heb via dit forum al gezocht of sorteren en ook via google maar kan het niet in orde krijgen.

Heb volgend veld in een query staan:SELLIN: Left([SELL-in];1)+" "+Mid([SELLINNR];1;4)+" "+"-"+Right([SELLINYR];2)
Sorteervolgorde staat: Oplopend
[Sellinnr] is een numeriek veld; Heb de notatie geplaatst : 000

In de tabel zie ik dus staan 001, 010;020112,115 enz. Tot zover goed.
Als ik de query laat lopen krijg ik volgende gegevens voor dit veld:
D 112 -09
D 120 -09
D 13 -09
D 131 -09
D 14 -09

Vraag: Hoe dit juist sorteren zodanig dat ik het krijg D 001 -09 en zo oplopend tot
D 999 - 09

Thanks op vosorhand.
 
cosimaro,

Het probleem zit hem in de manier waarop gegevens worden opgeslagen in Access.
Een numeriek veld bevat de numerieke gegevens zonder voorloopnullen.
De notatie is alleen maar een opmaak van het veld, en veranderd niets aan de waarde.
Dus 1 wordt opgeslagen als 1 maar getoond als 001.
Zo wordt 12 opgeslagen als 12 en getoond als 012.
Door de sortering op een numeriek veld te zetten wordt er op de 1e positie en daarna op de tweede, enz gesorteerd.
Vandaar dat 1, 12, 2, 22 krijgt te zien.
Om dit op te lossen zijn er twee mogelijkheden:
1. het veld niet als numeriek opnemen en dan op te slaan met voorloopnullen.
2. In je query gebruik maken van de lengte van het veld.
Als deze 1 is dan twee nullen er voor zetten, als deze 2 is dan een nul er voor zetten.
Bij lengte drie kan je het hele veld nemen.

Als ik je daarbij moet helpen dan hoor ik dat wel.
Tip: Kijk eens in de Help-functie naar de functie [Len] en naar [Iif] dan kom je er waarschijnlijk wel uit.

Succes

Wim
 
Nog een optie:

Code:
SELLIN: [Veld1] & " " & Right$("000" & [Veld2];3) & " -" & Right$("00" & [Veld3];2)

Bijvoorbeeld veld2 moet uit 3 cijfers bestaan 000 en 13 komt rechts te staan -> 013.
Als 113 rechts komt te staan over 000 is dit 113... :)
 

Bijlagen

  • cijfersQry.rar
    12 KB · Weergaven: 21
cosimaro,

Het probleem zit hem in de manier waarop gegevens worden opgeslagen in Access.
Een numeriek veld bevat de numerieke gegevens zonder voorloopnullen.
De notatie is alleen maar een opmaak van het veld, en veranderd niets aan de waarde.
Dus 1 wordt opgeslagen als 1 maar getoond als 001.
Zo wordt 12 opgeslagen als 12 en getoond als 012.
Door de sortering op een numeriek veld te zetten wordt er op de 1e positie en daarna op de tweede, enz gesorteerd.
Vandaar dat 1, 12, 2, 22 krijgt te zien.
Om dit op te lossen zijn er twee mogelijkheden:
1. het veld niet als numeriek opnemen en dan op te slaan met voorloopnullen.
2. In je query gebruik maken van de lengte van het veld.
Als deze 1 is dan twee nullen er voor zetten, als deze 2 is dan een nul er voor zetten.
Bij lengte drie kan je het hele veld nemen.

Als ik je daarbij moet helpen dan hoor ik dat wel.
Tip: Kijk eens in de Help-functie naar de functie [Len] en naar [Iif] dan kom je er waarschijnlijk wel uit.

Succes

Wim

>im,

Thankd voor het snelle antwoord. Wat ik gedaan heb is mijn query een veld bijgemaakt waar ik eers de Iif funktie uitvoer. In mijn samenstelling heb ik dit veld dan gebruikt. Doet het nu perfect.

Thanks
 
Heb je ook de oplossing van Greenery80 geprobeert?

Moet volgens mij ook werken
 
Ik weet wel zeker dat ie werkt. ;)
Er leiden toch meer wegen naar Rome.

Probeer ook te begrijpen wat de functies doen, kan je veel tijd schelen in de toekomst.
 
Ik weet wel zeker dat ie werkt. ;)
Er leiden toch meer wegen naar Rome.

Probeer ook te begrijpen wat de functies doen, kan je veel tijd schelen in de toekomst.

Wim,

Heb de geboden oplossing van Greenery80 uitgeprobeerd. Deze lukt en geeft bij de sortering D 010-09;D 011-09; enz.

In de door u voorgestelde instructie valt de 0 weg van 010 enz.

Heb de oplossing van Greenery80 gekozen, daar de lijst zo moet opgebouwd worden.

Greenery80 thanks voor mee te denken en mij te helpen.

Groeten
 
Ah goed nieuws, dat het je gelukt is.
Met Iif moet het overigens ook kunnen, maar dit is iets meer code!

Veel suc6 verder met je db!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan