随机命令访问ADODB记录集

时间:2011-03-21 14:56:22

标签: ms-access random adodb

我尝试随机在Access中使用查询对结果集进行排序。

我使用以下代码:

DIM TentamenQuestionID, TentamenQuestionResult, TentamenQuestionQuery, arrTentamenQuestion, arrTentamenQuestionIndex
Set TentamenQuestionResult = Server.CreateObject("ADODB.Recordset")
TentamenQuestionQuery = "SELECT TentamenQuestion.TentamenQuestionID, TentamenQuestion.TentamenQuestion, TentamenQuestion.TentamenQuestionSort " &_
                "FROM TentamenQuestion " &_
                "WHERE TentamenQuestion.TentamenID=" & TentamenID & " " &_
                "ORDER BY Rnd(TentamenQuestion.TentamenQuestionID)"

TentamenQuestionResult.Open TentamenQuestionQuery, Connect, adOpenStatic, adLockReadOnly, adCmdText
If NOT TentamenQuestionResult.EOF then
arrTentamenQuestion = TentamenQuestionResult.GetRows()
End If
TentamenQuestionResult.Close
Set TentamenQuestionResult = Nothing

response.write(arrTentamenQuestion(0,0)) & "<br />"
response.write(arrTentamenQuestion(1,0)) & "<br />"
response.write(arrTentamenQuestion(2,0)) & "<br />"
response.write(arrTentamenQuestion(0,1)) & "<br />"
response.write(arrTentamenQuestion(1,1)) & "<br />"
response.write(arrTentamenQuestion(2,1)) & "<br />"

当我在Access中运行查询时,会随机选择记录,但是当我使用此代码时,响应会写入数组。每次都对数组进行相同的排序,而不是随机排列。如何随机获取结果数组?

1 个答案:

答案 0 :(得分:0)

在每次调用Rnd()函数之前,您可以尝试在ASP代码中的某处使用Randomize命令。

否则,我有兴趣知道在选择期间是否进行排序,或者是否将记录检索到变量数组中。您是否尝试使用标准ADO语法(MoveNext)迭代记录以隔离问题?