www.visualcoder.dk/eksperten/501094koden er her
<%
Option explicit
'variabler
dim rndForhandler
dim intNumRecords
dim conn
dim rs
dim strSql
dim nowCorr
dim taeller
dim ForhandlerID
Set Conn = Server.CreateObject("ADODB.Connection")
set Rs = Server.CreateObject("ADODB.Recordset")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(".") & "/forhandler.mdb;PWD=admin;"
' udvælg alle som ikke er vist
strSQL = " select * from Forhandler where Aktiv = -1 AND Vist = 0"
rs.open strSQL, conn, 1
' hvis alle er vist er recordset tomt og alle skal aktiveres igen
if rs.eof then
' luk ubrugeligt recordset
rs.close
'lav nyt recordset til at resette alle
'udvælg alle aktive
strSQL = " select * from Forhandler where Aktiv = -1"
'åben rs med aktive
rs.open strSQL, conn, 1
'loop rs og reset feltet vist hos alle
do until rs.EOF
'reset ved at sætte værdien 0
strSQL = " update Forhandler set Vist = 0"
conn.execute(strSQL)
rs.movenext
loop
'nu har vi vores recordset med alle
'aktive forhandlere og ingen er vist
end if
'den næste kode er fælles enten det førstenævnte recordset indeholdt
'nogle få records eller vi har resat og derfor har alle records
'
'Vi laver så en random på rs.recordcount og bruger rs.recordcount til
'placere os på den record der er udvalgt.
'
'her skal du lave din random og der kan bruges rs.recordcount som seed
'Int((upperlimit - lowerlimit + 1)*Rnd() + lowerlimit)
'initer variabler
intNumrecords = rs.recordcount
response.write ("intNumrecords = " & intNumrecords & "<br>")
nowCorr = now
' Hvis der er forhandlere i forhandler tabellen så
if intNumrecords > 0 then
'sørg for at initere random
randomize time
'find en tilfældig forhandler baseret på recordcount
rndForhandler = (Int((intnumrecords + 1)*Rnd() + 1))
'kontrol af random forhandler
'kan ikke være nul
'og ikke større end antallet af records i tabellen
if rndForhandler > intNumRecords then
rndForhandler = rndForhandler -1
end if
if rndForhandler < 1 then
rndForhandler = 1
end if
response.write ("rndForhandler = " & rndForhandler & "<br>")
'sæt aktive record til den random forhandler
rs.absoluteposition = rndForhandler
forhandlerid = rs("ID")
'udskriv link
response.write "<font class='ParentSection_SectionTitle'>" & rs("Firmanavn") & "</font><br>"
response.write "<div style='width:40%;font-style:italic'>"
response.write rs("Beskrivelse") & "<br>"
response.write "</div>"
response.write "Vist " & rs("Taeller") & " gange<br>"
response.write "Sidst vist " & rs("SidstVist") & "<br>"
response.write "<a href='
http://" & rs("URLid") & ".tni.dk' target='_blank' class='linkVisit'>" & rs("URLid") & ".tni.dk >></a><br>"
response.write "<br>"
' opdaterings sql
strSQL = "update forhandler set " & _
"Taeller = " & rs("Taeller") + 1 & "," & _
"Vist = -1," & _
"SidstVist = '" & nowCorr & "' " & _
"WHERE ID = " & forhandlerID & ";"
' udfør opdatering
conn.execute(strSQL)
else
response.write ("Forhandlertabellen er tom" & "<br>")
end if
'oprydning
taeller = 0
rs.Close
set rs = nothing
%>