asp + access 如何实现随机读取表中已有的任何一条记录

来源:百度知道 编辑:UC知道 时间:2024/05/06 01:19:06
ASP+Access 随机读取一条表中已有的记录(ID是自动编号,但全是连续的,因为有的会被删除)
表名为member,ID字段为MemId
希望的结果,每次刷新页面读取不同MemId相关的记录
以下是conn.asp的内容
<%
Dim MM_conn_STRING
MM_conn_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("/abc.mdb")
%>
我是新手,希望高手针对我提供的信息写出完整的代码。谢谢
ID是自动编号,但不全是连续的,因为有的会被删除
第一行打错字了, 采用的是VBscript脚本

newid()是SQL SERVER中的函数,ACCESS里不支持
ACCESS可以用RND函数结合ASP中的RND函数来实现随机抽取。
<%
...
Randomize
strSQL = "SELECT TOP 1 字段列表 FROM 表名 ORDER BY RND(-(编号字段)*" & RND() & ")"
...
%>

要产生指定范围的随机整数,请使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里, upperbound 是此范围的上界,而 lowerbound 是此范围内的下界。

然后查询取表中的值罗,没有的话再生成一个来查

执行这句SQL语句就行了,返回随机取得的一条记录
select top 1 * from member order by newid()

随机取一个数然后把这个数作为ID来取数据

比如MAXCOUNT是所有的数据条数
那么可以getid=Int((MAXCOUNT - 1 + 1) * Rnd + 1) 来生成从1到MAXCOUNT的一个随机数。
然后用SQL语句"select * from member where menid=" &getid
就可以了

随机提取10条记录的例子:

Sql server:

select top 10 * from 表 order by newid()

Access:

SELECT top 10 * FROM 表 ORDER BY Rnd(id)

Rnd(id) 其中的id是自动编号字段,可以利用其他任何数值来完成

比如用姓名字段(UserName)

SELECT top 10 * FROM 表 ORDER BY Rnd(len(UserName)