Access随机显示记录(不重复)解决方案

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

看了很多人讨论关于access随机取记录的帖子,不才,写了一个随机显示记录的解决方法,希望大家指正。数据库里有5条记录,随机抽取4条。

code

--------------------------------------

<%

'-------------------------数据库连接-----------------------

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_

"Data Source=" & Server.MapPath("data.mdb")

objConn.Open

'-------------------------数据库连接-----------------------

'-------------------------检索数据-----------------------

strSQL = "SELECT id,DataColumn FROM DataTable"

'Sql语句,检索数据库

Set objRS = Server.CreateObject("ADODB.Recordset")

'创建记录集

objRS.Open strSQL, objConn, 1, 1

'执行检索

Count=objRS.RecordCount

'得到记录总数

Item=4

'显示记录数

'-------------------------检索数据-----------------------

'-------------------------------------------------------------------------------

redim a(Item, 2),t(Count)

'定义2数组,数组a用来储存记录,数组t用来删选记录

'---------------------------------------

'初始数组数值,目的为了插入数据以后和此值做比较

for each j in t

j=0

next

'---------------------------------------

'---------------------------------------

' 随机抽取记录号

Randomize timer '初始化随机数生成器

for j=1 to Item

k=int(rnd*Count+1) '从总数里面随机取一条记录

do while t(k)<>0 '判断是否记录是否已经在数组中

k=int(rnd*Item+1)

loop

t(k)=1 '第k条记录被选中

next

'--------------------------------------

j=1:i=1'定义下标

'--------------------------------------

' 循环选取数据集objRS中的部分记录存放到数组中

Do While Not objRS.Eof

if t(j)=1 then

a(i,1)=objRS("id") '记录id

a(i,2)=objRS("DataColumn") '记录内容

i=i+1

end if

j=j+1

objRS.MoveNext

Loop

'--------------------------------------

'-------------------------------------------------------------------------------

'----------------------------显示内容--------------------

for i=1 to Item

Response.write "序号"&a(i,1)&"<br>"

Response.write "内容"&a(i,2)&"<p>"

next

'----------------------------显示内容--------------------

'---------------------------

'释放资源

objRs.Close

set objRs=nothing

objConn.Close

set objConn=nothing

'---------------------------

%>

Data

id DataColumn

--------------------------

1 a

2 b

3 c

4 d

5 e

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航