如何从数据库中随机抽取不重复数据

vb中,adodc连接access数据库,如何实现每次单击命令按钮从学生表中随机抽取一个不重复的学生信息,并将学生姓名显示在text文本框中,学生表中有“id”“姓名”“... vb中,adodc连接access数据库,如何实现每次单击命令按钮从学生表中随机抽取一个不重复的学生信息,并将学生姓名显示在text文本框中,学生表中有“id”“姓名”“电话号码”三个字段。
数据库已在form-load连接成功,只需写随即抽取记录代码即可,以下是可能用到的几行代码,请高手详加指点。
Adodc1.RecordSource = "select * from 学生表 where id=" & Int((Adodc1.Recordset.RecordCount * Rnd))
......
Adodc1.Refresh
Set Label2.DataSource = Adodc1
Adodc1.Refresh
text1.text = "姓名"
要点:
1.每次单击按钮随机抽取一条非空数据
2.需要连续单击按钮,也就是连续抽取
3.抽取的是不重复的数据
展开
 我来答
abcnyzay
推荐于2018-04-09 · TA获得超过1378个赞
知道小有建树答主
回答量:928
采纳率:100%
帮助的人:1040万
展开全部
Adodc1.RecordSource = "select top 1 * from 学生表 order by rnd(id)",随机1个
Adodc1.RecordSource = "select top 10 * from 学生表 order by rnd(id)",随机10个
追问
是要每次随即抽取一个,但我要连续抽取,怎么样做到不重复呢?
追答
定义一个变量IDS,保存已抽取的ID,每次抽取后:IDS=IDS & "," & ID;然后用not in(即不包含):
Adodc1.RecordSource = "select top 1 * from 学生表 where id not in (" & mid(ids,2) & ") order by rnd(id)"
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
damyzl
2011-07-18 · TA获得超过1586个赞
知道大有可为答主
回答量:1475
采纳率:74%
帮助的人:907万
展开全部
form_load()获取所有学生名字到一个数组,按钮事件产生随机数(根据数组大小)作为索引获取学生名字,并将该名字从数组删除(用一个中间数组做过度)。将数组改为collection可以简化代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式