Avatar billede jpv Nybegynder
25. august 2003 - 20:31 Der er 16 kommentarer og
1 løsning

Tilfældig udtræk fra database (access)

Jeg har en access data base hvor jeg skal trække en tilfældig post ud af. Post antallet kan varier.
kolonnen hedder idnr og er auto nummereret og primær nøgle.
Dertil kommer (hvis det kan lade sig gøre)at posterne bliver vist lige mange gange.
Avatar billede eagleeye Praktikant
25. august 2003 - 20:36 #1
Prøv med dette:


Set Conn = Server.CreateObject("ADODB.Connection")
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(".\dbfil.mdb")
Conn.Open (ConnStr)
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM randomText"
rs.Open strSQL, Conn, 1
rndMax = rs.RecordCount
Randomize
rndNumber = Int((RND * rndMax))  'Find et random nummer
rs.Move rndNumber 'Flyt til den valgte record

'UDSKRIV RANDOM recorden her
Response.Write rs("visDetteTekst")

rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
Avatar billede jpv Nybegynder
25. august 2003 - 20:51 #2
Jeg skal så have lave en kolonne med navn RecordCount
Eller tager jeg helt fejl?
Avatar billede eagleeye Praktikant
25. august 2003 - 20:55 #3
Ja det gør du :)

Det er en property to recordset som indeholder antallet af records i recordsetet.
Avatar billede eagleeye Praktikant
25. august 2003 - 20:56 #4
to -> på
Avatar billede jpv Nybegynder
25. august 2003 - 20:57 #5
Hvordan holder man styr på hvor mange gange de forskellige poster er blevet vist?
Avatar billede eagleeye Praktikant
25. august 2003 - 21:04 #6
Så må man bygge en UPDATE ind sådan her:


Set Conn = Server.CreateObject("ADODB.Connection")
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(".\dbfil.mdb")
Conn.Open (ConnStr)
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM randomText"
rs.Open strSQL, Conn, 1
rndMax = rs.RecordCount
Randomize
rndNumber = Int((RND * rndMax))  'Find et random nummer
rs.Move rndNumber 'Flyt til den valgte record

SQL = "UPDATE SET randomText SET vist = vist + 1 WHERE idnr = " & rs("idnr")
Conn.Execute(SQL)

'UDSKRIV RANDOM recorden her
Response.Write rs("visDetteTekst")

rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
Avatar billede jpv Nybegynder
25. august 2003 - 21:18 #7
Syntax error in UPDATE statement.
Avatar billede netro Nybegynder
25. august 2003 - 21:18 #8
Avatar billede eagleeye Praktikant
25. august 2003 - 21:23 #9
ja det var to SET det første skal være:

SQL = "UPDATE randomText SET vist = vist + 1 WHERE idnr = " & rs("idnr")
Avatar billede eagleeye Praktikant
25. august 2003 - 21:24 #10
Her kan du se SQL syntax:
http://www.w3schools.com/sql/
Avatar billede jpv Nybegynder
25. august 2003 - 21:25 #11
Til netro
Jeg får godt nok et tilfældig udtræk, jeg vil bare gerne have at posterne bliver vist ligemeget
Avatar billede jpv Nybegynder
25. august 2003 - 21:34 #12
Nu sprøg jeg dumt igen, skal jeg nu have en kolonne der hedder vist?
Avatar billede eagleeye Praktikant
25. august 2003 - 21:39 #13
Ja det skal du.
Avatar billede jpv Nybegynder
25. august 2003 - 21:47 #14
Mange tak for hjælpen
Avatar billede netro Nybegynder
25. august 2003 - 21:54 #15
Jeg læste kun spørgsmålet, så det var blot en venlig henvisning.
Avatar billede jpv Nybegynder
25. august 2003 - 22:16 #16
Sådan var den også modtaget. Tak for forslaget
Avatar billede netro Nybegynder
25. august 2003 - 22:26 #17
:-)
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