Avatar billede svinget Praktikant
16. september 2005 - 12:16 Der er 7 kommentarer og
1 løsning

Tilfældig record i access

Hej

Jeg har et script der vælger en tilfældig record i en access database. Jeg har prøvet at rette response.write fra en tekst til et link, men siden kan ikke vises. Nogen der kan hjælpe?

<%
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM links"
rs.Open strSQL, 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 <a href="loadlink.asp?link=<%=links("link")%>"><%=links("text")%></a> 'udskriver her
%>
vh. Kim
/www.svinget.com
Avatar billede mm12010 Nybegynder
16. september 2005 - 12:27 #1
Response.Write "<a href=""loadlink.asp?link="&rs("link")&""">"&rs("text")&"</a>"'udskriver her
Avatar billede softspot Forsker
16. september 2005 - 12:59 #2
Skal du kun bruge netop een tilfældig record fra din tabel?

Hvis ja, så lad database gøre det beskidte arbejde:

Randomize
rndIdx = -int(1000*Rnd())+1
strSQL = "SELECT TOP 1 * FROM links ORDER BY Rnd(" & rndIdx & "*ID)"

så burdet det være ligetil at læse den første (og forhåbentlig eneste) record fra resultatet...
Avatar billede svinget Praktikant
16. september 2005 - 13:27 #3
Det funker - tak for hjælpen. Poster du et svar?
softspot: din kode tager det samme link hver gang selvom man refresh'er browseren:
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM links"
rs.Open strSQL, Conn, 3, 1
rndMax = rs.RecordCount
' Randomize
' rndNumber = Int((RND * rndMax))  'Find et random nummer
' rs.Move rndNumber 'Flyt til den valgte record
Randomize
rndIdx = -int(1000*Rnd())+1
strSQL = "SELECT TOP 1 * FROM links ORDER BY Rnd(" & rndIdx & "*ID)"

Response.Write "<a href=""loadlink.asp?link="&rs("link")&""">"&rs("text")&"</a>"'udskriver her

%>
Avatar billede softspot Forsker
16. september 2005 - 13:47 #4
Så prøv evt.

strSQL = "SELECT TOP 1 Rnd(" & rndIdx & "*ID), * FROM links ORDER BY 1"

Jeg antager at du har en kolonne der hedder ID i den tabel der hedder links...?
Avatar billede nielle Nybegynder
16. september 2005 - 17:23 #5
Prøv lige med denne her:

strSQL = "SELECT TOP 1 * FROM links ORDER BY NewID()"
Avatar billede svinget Praktikant
04. januar 2006 - 12:51 #6
softspot - poster du et svar?
Avatar billede softspot Forsker
04. januar 2006 - 23:21 #7
Ja, det kan du tro :)
Avatar billede softspot Forsker
05. januar 2006 - 20:55 #8
Tak for point :)
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