Mød TrackMan og Veo på Computerworld Cloud & AI Festival og hør, hvordan tech ændrer måden, vi træner og udvikler talent – fra skolebold til The Masters.
9. juli 2025
Slettet bruger
16. september 2008 - 21:57#1
Kender du RAND() ?
SELECT * FROM table ORDRE BY RAND()
EVT: SELECT * FROM table WHERE noget = 'top1' ORDRE BY RAND()
access har ikke nogen random funktion - så du skal have kode dig ud af det
'//åbning af db Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("stien til din database") Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "select * From dintabel" rs.Open strSQL, Conn, 3, 1
If rs.eof = false then '//hent dine poster ind i array arrayRS = rs.GetRows() '//find 3 post tot_unik = 3 'det kan du ændre hvis du har lyst top_number = Ubound(arrayRS, 2)
dim random_number, counter, check, unique_numbers
Redim random_number(tot_unik) Randomize
For counter = 1 to tot_unik random_number(counter) = Int(Rnd * top_number)+1 for check = 1 to counter - 1 if random_number(check)= random_number(counter) then counter = counter - 1 end if next next
For counter = 1 to tot_unik response.write "<li>" & arrayRS(1, random_number(counter)) & " >" & arrayRS(2, random_number(counter)) & "</li>" next End if
'dvs at dine poster bliver hentet til et array og den tager så random derfra.
NB: Man kan ikke bruge RND direkte i SQL-sætningen, da den bliver genereret én gang og så er det den samme værdi for alle rækker - og det giver jo ikke meget værdi ifht. at sortere på den... :-)
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.