Avatar billede gangsta Nybegynder
11. februar 2001 - 23:33 Der er 9 kommentarer og
1 løsning

Vælg en random record fra en Access 2000 DB

Hvordan SELECTer man en random record fra en Access-2000 database?
Jeg så noget til MySQL: SELECT * FROM noget ORDER BY rand(), men det virker ikke i access... Jeg skal bare bruge select strengen
Avatar billede tpiil Nybegynder
11. februar 2001 - 23:35 #1
<%
set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"db.mdb\")

set rs = Server.CreateObject(\"ADODB.Recordset\")
SQL = \"SELECT * FROM tabel\"
rs.Open SQL, Conn, 1, 3

randomize
rs.Move(int(rs.RecordCount * rnd))
%>
<%=rs(\"felt\")%>
Avatar billede tdaugaard Nybegynder
11. februar 2001 - 23:36 #2
tpiil:> Rs.RecordCount .. funker den når man \"åbner\" et recordset istedet for en reference til det ?
Avatar billede eagleeye Praktikant
11. februar 2001 - 23:36 #3
Så vidt jeg ved er du nød til dette:

strSQL = \"SELECT * FROM noget\"
rs.Open strSQL, Conn
randomize
rs.Move(int(rs.RecordCount * rnd))
Avatar billede eagleeye Praktikant
11. februar 2001 - 23:37 #4
ups der var svaret...:)
Avatar billede tpiil Nybegynder
11. februar 2001 - 23:37 #5
jep, når du sætter 1 og 3 bag på virker det :)
Avatar billede eagleeye Praktikant
11. februar 2001 - 23:42 #6
Det virker når du benytter rs.Open. Hvis man bruger Set rs = Conn.Execute, så virker det ikke.
Avatar billede tpiil Nybegynder
11. februar 2001 - 23:47 #7
jeg har lige testet det og det behøver ikke at stå 3, men det skal stå 1 ellers får du en fejl!
altså sådan skal den linie se ud:
rs.Open SQL, Conn, 1
Avatar billede gangsta Nybegynder
11. februar 2001 - 23:51 #8
Mange Tak tpiil!
Må jeg spørge, hvad \'1, 3\' gør?
Avatar billede tpiil Nybegynder
11. februar 2001 - 23:55 #9
1\'eren åbner databasen (jeg ved det ikke helt præcis) og 3\'ren gør så man kan skrive til databasen
Avatar billede gandalfthewhite Nybegynder
12. februar 2001 - 00:08 #10
Det der er afgørende for om man kan lave et recordcount er at Cursorlocation skal være client-side. Hvis Cursorlocation er serverside bliver der kun returneret -1.

Tallene refererer til constanterne i filen adovbs.inc, her er et uddrag
\'---- CursorLocationEnum Values ----
Const adUseServer = 2
Const adUseClient = 3

Dette er syntaksen for Open metoden:
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
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