Random udtræk antal med formular?
Jeg får følgende fejl:Microsoft OLE DB Provider for ODBC Drivers error \'80040e24\'
Rowset does not support fetching backward.
/random.asp, line 35
til denne kode, som skal kunne udtrække et random antal fra min database.
Hvad er der galt???
Kode:
<% Response.Expires = 0 %>
<html>
<head>
<meta HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html;charset=windows-1252\">
<title>Random Recordset</title>
</head>
<body>
<%
Dim objConn
Dim objRst
Dim strSQL
Dim strConnection
Dim str
Dim str1
Dim cnt
Dim cnt1
Dim rndMax
Dim RndNumber
strConnection=\"driver={Microsoft Access Driver (*.mdb)};dbq=\" & server.mappath(\"_private/articledb.mdb\")
strSQL = \"SELECT ArticleId FROM Articles\"
set objConn = Server.CreateObject(\"ADODB.Connection\")
Set objRst = Server.CreateObject(\"ADODB.Recordset\")
objConn.Open strConnection
set objRst.ActiveConnection = objConn
objRst.LockType = adLockOptimistic
objRst.CursorType = adOpenKeySet
objRst.Open strSQL
objRst.MoveLast
cnt = objRst.RecordCount
cnt1 = cnt
rndMax = cnt
If CInt(Request.Form(\"maxNumber\")) < cnt Then
cnt1 = CInt(Request.Form(\"maxNumber\"))
End If
str = \",\"
str1 = \",\"
Do Until cnt1 = 0
Randomize
RndNumber = Int(Rnd * rndMax)
If (InStr(1, str1, \",\" & RndNumber & \",\" ) = 0) Then
str1 = str1 & RndNumber & \",\"
cnt1 = cnt1 - 1
objRst.MoveFirst
objRst.Move RndNumber
str = str & objRst(\"id\") & \",\"
End If
Loop
objRst.Close
Set objRst = Nothing
sql = \"SELECT * FROM Articles WHERE (((InStr(1,\'\" & str & \"\',(\',\' & [id] & \',\')))<>0)) ORDER BY Rnd(IsNull([id])*0+1)\"
Set objRst = Server.CreateObject(\"ADODB.Recordset\")
set objRst.ActiveConnection = objConn
objRst.LockType = adLockOptimistic
objRst.CursorType = adOpenStatic
objRst.Open sql
%>
<p><a href=\"viewcode.asp?source=/demo/random.asp\">View the code</a></p>
<table width=\"100%\" BORDER=\"0\" BGCOLOR=\"#ffffff\" CELLSPACING=\"0\">
<tr>
<td>
<font FACE=\"Arial\" COLOR=\"#000000\"><b>SQL Statement =</b> <%=sql%>
</td>
</tr>
</table>
<br>
<table BORDER=\"1\" BGCOLOR=\"#ffffff\" CELLSPACING=\"0\">
<font FACE=\"Arial\" COLOR=\"#000000\"><caption><b>Random Recordset</b></caption>
<thead>
<tr>
<th BGCOLOR=\"#c0c0c0\" BORDERCOLOR=\"#000000\"><font SIZE=\"2\" FACE=\"Arial\" COLOR=\"#000000\">Count</font></th>
<th BGCOLOR=\"#c0c0c0\" BORDERCOLOR=\"#000000\"><font SIZE=\"2\" FACE=\"Arial\" COLOR=\"#000000\">Id</font></th>
<th BGCOLOR=\"#c0c0c0\" BORDERCOLOR=\"#000000\"><font SIZE=\"2\" FACE=\"Arial\" COLOR=\"#000000\">AdmDate</font></th>
<th BGCOLOR=\"#c0c0c0\" BORDERCOLOR=\"#000000\"><font SIZE=\"2\" FACE=\"Arial\" COLOR=\"#000000\">DischDate</font></th>
</tr>
</thead>
<tbody>
<%
objRst.MoveFirst
Dim ccnt
ccnt = 0
do while Not objRst.eof
ccnt = ccnt + 1
%>
<tr VALIGN=\"TOP\">
<td BORDERCOLOR=\"#c0c0c0\"><font SIZE=\"2\" FACE=\"Arial\" COLOR=\"#000000\"><%=ccnt%><br>
</font></td>
<td BORDERCOLOR=\"#c0c0c0\"><font SIZE=\"2\" FACE=\"Arial\" COLOR=\"#000000\"><%=objRst.Fields(\"id\")%><br>
</font></td>
<td BORDERCOLOR=\"#c0c0c0\"><font SIZE=\"2\" FACE=\"Arial\" COLOR=\"#000000\"><%=objRst.Fields(\"AdmDate\")%><br>
</font></td>
<td BORDERCOLOR=\"#c0c0c0\"><font SIZE=\"2\" FACE=\"Arial\" COLOR=\"#000000\"><%=objRst.Fields(\"DischDate\")%><br>
</font></td>
</tr>
<%
objRst.MoveNext
loop
objRst.Close
Set objRst = Nothing
objConn.Close
Set objConn = Nothing
%>
</tbody>
<tfoot>
</tfoot>
</table>
</font>
</body>
</html>
