Avatar billede hostgirl Nybegynder
05. juli 2003 - 14:43 Der er 9 kommentarer og
1 løsning

Random funktion

Hey folkens..

hvordan laver jeg en random funktion til access database, det skal være SQL. Ved ikke om det kunne se sådan her ud eller noget:

select random from mintabel 

også bare RS("navn")  håber det kan gøres simpelt
Avatar billede Slettet bruger
05. juli 2003 - 14:53 #1
Øh, hvad er det egentlig du vil?
Avatar billede eagleeye Praktikant
05. juli 2003 - 14:56 #2
Man kan lave en SQL som denne

SQL = "select top 1 * form mintabel order by rnd(id)"


men den virker vist ikke ordenlig og giver samme record hver gang. Jeg har ikke gode erfaringer med den, så man e rnød til at hende det ud som nedenfor.

Så prøv med dette:


Set rs = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * FROM mintabel"
rs.Open SQL, Conn, 3, 1
rndMax = rs.RecordCount
Randomize
rndNumber = Int((RND * rndMax))  'Find et random nummer
rs.Move rndNumber 'Flyt til den valgte record

Response.Write rs("navn") 'udskriver her
Avatar billede hostgirl Nybegynder
05. juli 2003 - 14:57 #3
hehe, jeg har 10 navne i databasen. Gitte Stine .... Line. Hver gang en besøger min side, skal der stå et tilfældigt navn på siden, navnene står i en access database.... fx første gang står der line osv.. håber det kan gøres via en sql kommando.
Avatar billede Slettet bruger
05. juli 2003 - 15:01 #4
Så prøv eagleeye's forslag, det burde gøre det du vil.
Avatar billede hostgirl Nybegynder
05. juli 2003 - 15:09 #5
jeg får denne fejl:

Microsoft JET Database Engine error '80040e24'

Rowset does not support fetching backward

i denne linie:

objRS.Move rndNumber 'Flyt til den valgte record
Avatar billede eagleeye Praktikant
05. juli 2003 - 15:13 #6
Har du åbnet dit recordset med:  objrs.Open  ?
Avatar billede hostgirl Nybegynder
05. juli 2003 - 15:15 #7
<%
Dim objRS

Call OpenDataBase("ddb.mdb")

Set objRS = objConn.Execute("SELECT * FROM Bruger")
rndMax = objRS.RecordCount
Randomize
rndNumber = Int(RND * rndMax)  'Find et random nummer
objRS.Move rndNumber 'Flyt til den valgte record

Response.Write objRS("Brugernavn") 'udskriver her


%>
Avatar billede eagleeye Praktikant
05. juli 2003 - 15:17 #8
Du skal bruge objRS.Open for det virker så prøv med din kode lavet om til dette:


<%
Dim objRS

Call OpenDataBase("ddb.mdb")
Set objRS = Server.CreateObject("ADODB.RecordSet")
objRS.open "SELECT * FROM Bruger", objConn, 3, 1
rndMax = objRS.RecordCount
Randomize
rndNumber = Int(RND * rndMax)  'Find et random nummer
objRS.Move rndNumber 'Flyt til den valgte record

Response.Write objRS("Brugernavn") 'udskriver her


%>
Avatar billede hostgirl Nybegynder
05. juli 2003 - 15:17 #9
og jeg har en fil som åbner en connection, som jeg bruger på alle mine sider..
Avatar billede hostgirl Nybegynder
05. juli 2003 - 15:22 #10
det virker... jeg siger tak
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