Vbscript RND查询在Access中工作,但在ASP中不工作

Vbscript RND查询在Access中工作,但在ASP中不工作,vbscript,asp-classic,Vbscript,Asp Classic,我有一个简单的rnd查询,它在Access中运行良好,但当我在asp页面上运行它时,每次都会得到完全相同的记录。我更新了我的原始帖子,在asp页面和我的DB连接中显示了新的SQL 访问: SELECT TOP 1 tblPlayers.* FROM tblPlayers WHERE (((tblPlayers.FN) Like "*aaa*")) ORDER BY Rnd([LID]); ASP页面基于以下评论的反馈 Dim sql, rssql sql = "SELECT TOP 1 tb

我有一个简单的rnd查询,它在Access中运行良好,但当我在asp页面上运行它时,每次都会得到完全相同的记录。我更新了我的原始帖子,在asp页面和我的DB连接中显示了新的SQL

访问:

SELECT TOP 1 tblPlayers.*
FROM tblPlayers
WHERE (((tblPlayers.FN) Like "*aaa*"))
ORDER BY Rnd([LID]);
ASP页面基于以下评论的反馈

Dim sql, rssql

sql = "SELECT TOP 1 tblPlayers.* "
sql=sql & "FROM tblPlayers "
sql=sql & "WHERE (((tblPlayers.FN) Like '%aaa%')) "
sql=sql & "ORDER BY Rnd([LID]); "

set rssql = Server.CreateObject ("ADODB.RecordSet")
rssql.Open sql, conn 
数据库连接

<%
Dim conn 
set conn=Server.CreateObject("ADODB.Connection") 
conn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("/_db/database.mdb") & ""
%>
如果有人有任何建议,请告诉我。谢谢

试试看

sql = "SELECT TOP 1 tblPlayers.* "
sql=sql & "FROM tblPlayers "
sql=sql & "WHERE (((tblPlayers.FN) Like '%aaa%')) "
sql=sql & "ORDER BY NewId(); "

要完全复制工作查询,您不需要执行以下操作:sql=sql&WHERE-tblPlayers.FN类似*aaa*或sql=sql&WHERE-tblPlayers.FN类似'*aaa*'?你为什么要把星号换掉?我不确定百分比符号在Access中是否是有效的通配符标记。请添加完整的相关代码,包括执行SQL命令并在ASP中建立连接的行。@Adam如果他们仍然使用Access作为数据库,则您完全正确,它应该是*aaa*而不是“%aaa%”,因为这是SQL Server T-SQL查询语法。@ryzerman您应该将其添加到现有的帖子中。RND的问题通常源于在使用“每次运行都获取相同的数字”之前未对生成器进行种子设定,或者RND返回浮点0-1而不是整数范围。