您现在的位置: PQ秀秀网 >> PQ知道 >> 正文 用户登录 新用户注册
如何从ACCESS中随机读取3条记录? Web 开发 / ASP
作者:佚名    文章来源:不详    点击数:加载中...    更新时间:2008-7-12 字体:[ ]
添加到收藏: 添加到百度收藏  收藏到QQ书签  添加到雅虎收藏  添加到新浪ViVi  添加到天极网摘  添加到和讯网摘

如何从ACCESS中随机读取3条记录?

楼主mouse0987(飞狐)2006-12-21 10:31:39 在 Web 开发 / ASP 提问

如何从ACCESS中随机读取3条记录? 问题点数:100、回复次数:13Top

1 楼mouse0987(飞狐)回复于 2006-12-21 10:48:10 得分 0

高手快来呀!Top

2 楼yeaky()回复于 2006-12-21 10:48:24 得分 10

SELECT   top   3   *   FROM   表   ORDER   BY   Rnd(id)Top

3 楼webmm(一笑而过)回复于 2006-12-21 10:53:21 得分 5

楼上正解Top

4 楼mouse0987(飞狐)回复于 2006-12-21 11:54:22 得分 0

这样虽然可以随机,但每次刷新的结果好像还是一样。  
  读取的记录好像没有变化呀?Top

5 楼SDDKILLER()回复于 2006-12-21 12:01:29 得分 60

Set   rs   =   Server.CreateObject("Adodb.RecordSet")  
  rs.open   sql,conn,1,1  
   
  DIM   Appeared  
  Call   DisRndRecord(10,rs.recordCount)'调用函数该位置显示记录  
   
  '################SUBS################  
  '#DisRndRecord(DisNum,rsBound)  
  '#参数DisNum:显示数量  
  '#参数rsBound:随机数产生范围  
  Sub   DisRndRecord(DisNum,rsBound)  
    DIM   i,ThisRnd  
    If   rsBound   <   DisNum   Then   DisNum   =   rsBound'记录总数小于要抽取记录条数的情况  
    For   i   =   0   To   DisNum   -   1  
      ThisRnd   =   GetRnd(rsBound)'取得一个不重复的随机数  
      rs.Move(ThisRnd)'游标移动到随机数位置数读取  
      Response.Write("<br/>("&rs("id")&")"&rs("Title"))  
      rs.Move(-ThisRnd)  
    Next  
  End   Sub  
  '#   函数GetRnd(bound)返回一个不重复的随机数字  
  '#参数bound:随机范围  
  Function   GetRnd(bound)  
    DIM   ranNum  
    Randomize()  
    ranNum=int(bound*rnd)  
    If   Instr(Appeared,"["&ranNum&"]")   Then   '产生的随机数是否出现过  
      ranNum   =   getRnd(bound)  
    End   If  
    Appeared   =   Appeared   &   "["&ranNum&"]"   '记录已出现的随机数  
    GetRnd   =   ranNum  
  End   Function  
   
  Top

6 楼SDDKILLER()回复于 2006-12-21 12:02:52 得分 5

PS这个问题昨天有人提问了,随机读取3个图片信息,而且不能和现在显示的相同,这个可以做到的Top

7 楼SDDKILLER()回复于 2006-12-21 12:05:00 得分 5

而且这个可以随机产生N个(N>1   安定N<recordcount)的随机记录~~Top

8 楼mouse0987(飞狐)回复于 2006-12-21 12:06:43 得分 0

谢谢各位高手,一会给你们加分!哈哈!Top

9 楼net_lover(【孟子E章】)回复于 2006-12-21 12:45:57 得分 5

ORDER   BY   Rnd(id)  
  是不行的。,access有缓存Top

10 楼mouse0987(飞狐)回复于 2006-12-21 12:57:42 得分 0

谢谢了,刚吃完饭回来,下午给大家发银子。呵呵!Top

11 楼net_lover(【孟子E章】)回复于 2006-12-21 13:02:33 得分 5

http://dotnet.aspx.cc/article/1a54941d-94cc-4a3e-9b67-3e72af16c49a/read.aspxTop

12 楼net_lover(【孟子E章】)回复于 2006-12-21 13:03:57 得分 5

asp里这样  
  Randomize()  
  intRandomNumber   =   Int   (1000*Rnd)+1  
  sql   =   "select   top   3   *   from   Question   Order   By     Rnd("   &   (-1   *   intRandomNumber)   &   "*id)"  
  Top

13 楼mouse0987(飞狐)回复于 2006-12-21 14:20:52 得分 0

SDDKILLER()   你好棒给你60分。  
   
  剩的40分散给其他兄弟们了。你不会介意吧!哈哈Top

文章录入:andy    责任编辑:andy 
  网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)