Avatar billede flodhesten Nybegynder
27. juli 2007 - 23:55 Der er 3 kommentarer og
1 løsning

Tilfældige recordset fra database uden gentagelser

Hej eksperter.

Jeg har en Access database med en omkring 1000 recordset.
Jeg skal gerne have fundet 10 tilfældige recordset, hvor der dog ikke må være to magen til hinanden.

Når de er fundet, skal jeg have deres forskellige autonummererings-id gemt i 10 forskellige session. Den ene session("id1"), den næste session("id2") ... session("id10").

Jeg skal så til hver en tid kunne udskrive eksempelvis session("id5") og få et tilfældigt id fra min database. Men der må som sagt ikke være gentagelser af indholdet i mine sessions.

Er det mon noget du kan hjælpe med eller skal jeg uddybe?

På forhånd tak.
Avatar billede keysersoze Ekspert
28. juli 2007 - 09:09 #1
allerførst vil jeg lige sige, at det du omtaler som recordset vel er rækker i tabellen - et recordset er en samling af rækker udtrukket fra databasen.

til dit egentlige spørgsmål så kan du gøre noget a la dette;

'connect til database
Randomize
R = clng(100000*rnd)
SQL = "SELECT TOP 10 id FROM tabel ORDER BY rnd(-(id)*" & R & ")"
Set rs = Conn.Execute(SQL)
If Not rs.eof Then
  Counter = 0
  Do While Not rs.eof
    Session("id" & Counter) = rs("id")
    Counter = Counter + 1
    rs.movenext
  Loop
End If
'Luk
Avatar billede flodhesten Nybegynder
28. juli 2007 - 10:54 #2
Det virker meget godt.

Som det ser ud lige nu, findes der en session der hedder session("id0") - kan man et sted i koden tilføje et +1, således at den starter fra 1 og slutter ved 10?
Avatar billede flodhesten Nybegynder
28. juli 2007 - 11:08 #3
Hehe, ups...  Counter = 1...

Smid et svar :P
Avatar billede keysersoze Ekspert
28. juli 2007 - 11:15 #4
svar :)
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
Kurser inden for grundlæggende programmering

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