Avatar billede gpesp Novice
19. oktober 2008 - 22:45 Der er 7 kommentarer og
3 løsninger

Tilfældigt tal for HVER record i forespørgsel

Hejsa!

Jeg har lavet en forespørgsel som har et beregnet sum-felt for en masse records. Problemet er at flere records kan give den samme sum, hvilket jeg SKAL undgå, idet alle summer skal være unikke. Jeg har derfor behov for at lægge et positivt, tilfældigt (og meget lille) tal til HVER record i forespørgslen. Hver record skal derfor have sit eget unikke tilfældige tal.

Jeg tænkte selv på at lave et udtryk der hedder sum+rækkenummer/10000 men jeg har besvær med at få rækkenummeret frem.

Håber at problemet er beskrevet ordentligt. Har nogen et bud på en løsning? Det skal bemærkes at jeg ikke er fortrolig med VBA og derfor foretrækker en løsning uden brug af VBA :-)
Avatar billede Slettet bruger
19. oktober 2008 - 22:54 #1
Jeg kunne forestille mig, at du har et autogenereret id felt i en af de tabeller, som din forespørgsel bygger på. I så fald kunne du sikkert lave noget a'la sum+(id/100000)
Avatar billede Slettet bruger
19. oktober 2008 - 22:56 #2
hov, undskyld du har jo en summering, så du kan selvfølgelig ikke bruge den metode...

...nåh, men funktion for tilfældige tal er RND, så prøv at lege med det i stedet!~)
Avatar billede terry Ekspert
20. oktober 2008 - 09:15 #3
This may be a silly question but what is the pint in haveing a "beregnet sum-felt" if the value isnt used? Adding a random value to this field may make it unique but the original calculated value is no longer known. So you may as well just use a random value from the start.

Anyway here is a function which you can call to give arandom number within a specific range

http://www.fontstuff.com/vba/vbatut06.htm
Avatar billede terry Ekspert
20. oktober 2008 - 09:15 #4
pint = point
Avatar billede gpesp Novice
20. oktober 2008 - 11:37 #5
Hej Terry

Hvorfor lægge et tal til et sumfelt? Så bliver sumfeltet vel ligegyldigt? Ja, strengt taget, men hvis man kun interesserer sig for en sum med f.eks. 2 decimaler, så gør det ikke noget, at der ude på f.eks. 7. decimal lægger en smule til summen. Det har faktisk den fordel, at man efterfølgende kan rangordne sine summer, hvilket også er grunden til at jeg har brug for at gøre summerne unikke. Eks.:

Record1: 2,00 + 0,000000562 = 2,000000562
Record2: 2,00 + 0,000000718 = 2,000000718
Avatar billede terry Ekspert
20. oktober 2008 - 12:08 #6
then sort on sum and autonumber field
Avatar billede terry Ekspert
20. oktober 2008 - 12:11 #7
"then sort on sum and autonumber field" silly comment, spg has answered that one.
Avatar billede terry Ekspert
20. oktober 2008 - 12:12 #8
cant you use the link I gave above?
Avatar billede gpesp Novice
23. oktober 2008 - 11:19 #9
Til Terry og spg

Jeg kunne ikke bruge linket da det henviser til en VBA-løsning (og jeg er ikke fortrolig med VBA).

Jeg vil sige mange, mange tak for besvarelserne. Jeg fik dog senere selv på en anden måde at løse problemet på.

Da I begge bidrog, så vil jeg se om jeg kan finde ud af at dele pointene imellem jer. Hvis ikke, så vil jeg give pointene til spg, som først kom med løsningen.

Venlig hilsen

GPESP
Avatar billede terry Ekspert
23. oktober 2008 - 12:52 #10
thanks
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester