Hoe rapport sorteren op 1.1;1,2;2.1;11.1 ect

Status
Niet open voor verdere reacties.

Ronaldxx

Gebruiker
Lid geworden
13 dec 2009
Berichten
198
Ik ben bezig met het opstellen van een database die eisen en wensen van de opdrachtgever automatisch sorteert en een schema daarbij opstelt.
De eisen worden vaak aangeleverd met hoofdcodes en daarbij behorende onderliggende codes. Bijvoorbeeld
Eis 1
Eis 1.1
Eis 1.1.1
Eis 1.1.2 ect
Eis 2
Eis 2.1
...
Eis 11
Eis 11.1

Deze eisen moeten allemaal ingevoerd worden, daarna moeten ze gesorteerd worden er kunnen tijdens het proces eisen bij komen.
Met sorteren van A=>Z sorteert hij de lijst keurig totdat ik 11 toevoeg.
Dan plakt hij deze 11 tussen 1 en 2.

Na invoeren
1
1.1
1.1.1
1.1.2
11
11.1
2
2.1

Is dit op te lossen met een filter of een andere wijze van sorteren ?
Ik hoop dat de vraag duidelijk genoeg is.
Alvast vriendelijk bedankt !
 
De sortering is op zichzelf correct, want je sorteert op Alfanumerieke gegevens (tekst+cijfers), Dus de combinatie 11 komt in de lijst vóór 2. Om op getallen te sorteren, moet je dus op een ander veld sorteren dat wel numeriek is. Dat zou je in een query wel moeten kunnen maken, door de getallen van het eerste niveau uit het veld te halen, en daar dan op te sorteren. Waarschijnlijk heb je dan ook een sortering nodig op het tweede niveau, waar je dus dezelfde truc zult moeten toepassen.
 
De sortering is op zichzelf correct, want je sorteert op Alfanumerieke gegevens (tekst+cijfers), Dus de combinatie 11 komt in de lijst vóór 2. Om op getallen te sorteren, moet je dus op een ander veld sorteren dat wel numeriek is. Dat zou je in een query wel moeten kunnen maken, door de getallen van het eerste niveau uit het veld te halen, en daar dan op te sorteren. Waarschijnlijk heb je dan ook een sortering nodig op het tweede niveau, waar je dus dezelfde truc zult moeten toepassen.

Hoe zou je de eerste getallen eruit kunnen halen ?
Ik heb ook bij de help functie de volgende functie gevonden. Deze zou de tekst waarde omzetten in een valute,
Expr1: IIf([Veldnaam] Is Null, 0, Val([Veldnaam])) Maar als ik deze invul in het veld krijg ik de melding dat de komma na Null niet toegestaan is.

In ieder geval bedankt voor het meedenken.
 
Als je een query maakt, moet je de argumenten scheiden met een puntkomma (;). In VBA wordt echter een komma gebruikt. Vandaar dat je een foutmelding krijgt, want de voorbeeldcode is bedoeld voor VBA, niet voor een query.
Maar zelfs met het vervangen van de komma door een puntkomma zal hij niet werken, omdat je veld dat je gebruikt een tekstveld is, en geen getalveld. Je zult de getallen er dus op een andere manier uit moeten halen. Ik zit zelf aan de functie Instr te denken, waarmee je kunt zoeken op bepaalde tekens in een string, zoals in dit geval een punt.

Expr1: IIf(InStr(1;[Veldnaam];".")>0;Val(Left([Veldnaam];InStr(1;[Veldnaam];".")-1));Val([Veldnaam]))

Bijvoorbeeld
 
Als je een query maakt, moet je de argumenten scheiden met een puntkomma (;). In VBA wordt echter een komma gebruikt. Vandaar dat je een foutmelding krijgt, want de voorbeeldcode is bedoeld voor VBA, niet voor een query.
Maar zelfs met het vervangen van de komma door een puntkomma zal hij niet werken, omdat je veld dat je gebruikt een tekstveld is, en geen getalveld. Je zult de getallen er dus op een andere manier uit moeten halen. Ik zit zelf aan de functie Instr te denken, waarmee je kunt zoeken op bepaalde tekens in een string, zoals in dit geval een punt.

Expr1: IIf(InStr(1;[Veldnaam];".")>0;Val(Left([Veldnaam];InStr(1;[Veldnaam];".")-1));Val([Veldnaam]))

Bijvoorbeeld

Het werkt voor de eerste twee niveau's, dit is ieder geval een goed begin !
De code wekt bij mij wel aardig wat vraagtekens op haha ! Als er meerdere niveau's komen moeten er dan meerdere queries gemaakt worden of is dit in 1 code te implementeren ?
Eventueel is hierbij de database, Database eisen
Weer hartstikke bedankt !
 
Mooi hoor, al die mensen die zich hebben laten overlaten door Bill om 2007 te gebruiken... Maar als principiële weigeraar kan ik dus niet zoveel met het bestand ;) Heb je 'm ook in 2003 format?
 
Mooi hoor, al die mensen die zich hebben laten overlaten door Bill om 2007 te gebruiken... Maar als principiële weigeraar kan ik dus niet zoveel met het bestand ;) Heb je 'm ook in 2003 format?

Haha, ach ja word 2007 is een verbetering naar mijn mening.
Hierbij 2003 versie ik hoop dat hij werkt. Het is de querie eisen sorteren !
Database 2003
 
Zelfs van Word 2007 word ik niet vrolijker.... Maar goed, tekstverwerken is ook een pakket waar je heel weinig aan kan ver*****n natuurlijk. Je moet toch typen.

Affijn, probeer het eens met deze formule:

IIf(InStr(1;[Eiscode];".")>0;CDbl(Left([Eiscode];InStr(1;[Eiscode];".")-1) & "," & (Replace([Eiscode];".";"";InStr(1;[Eiscode];".")+1)));Val([Eiscode]))
 
Zelfs van Word 2007 word ik niet vrolijker.... Maar goed, tekstverwerken is ook een pakket waar je heel weinig aan kan ver*****n natuurlijk. Je moet toch typen.

Affijn, probeer het eens met deze formule:

IIf(InStr(1;[Eiscode];".")>0;CDbl(Left([Eiscode];InStr(1;[Eiscode];".")-1) & "," & (Replace([Eiscode];".";"";InStr(1;[Eiscode];".")+1)));Val([Eiscode]))
De code levert geen goed resultaat op.
Ik heb nu gewoon een 0 gezet voor de eerste 9 invoeringen. Dit zal dan maar moeten worden door gezet waardoor wel van a tot z kan worden gesorteerd.

In ieder geval harstikke bedankt voor de informatie !
 
Bij mij doet-ie het netjes, zie afbeelding!
 

Bijlagen

  • Sorteren.jpg
    Sorteren.jpg
    44,1 KB · Weergaven: 29
Laatst bewerkt:
Gister avond thuis op mijn eigen computer de code ingepast en werkend.
Ik vanochtend vrolijk op me laptop de code invoeren, werkt die weer niet haha.
Volgens mij ligt het aan mijn computer, jammer genoeg.
Het werkte erg goed, het is trouwens voor een afstudeerproject.

Gr,
 
Wat is het probleem nu?
 
Wat is het probleem nu?

Het is gewoon heel vreemd, thuis zitten proberen hij werkte gewoon.
Vanochtend openen op me laptop werkt hij niet. Geprobeerd bij de mede student werkt hij wel :P Ik zou niet weten waar dat aan zou kunnen liggen zelfde versie van access mja.
Nu druk ant tobben voor een opzoek formulier haha houden ons wel bezig ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan