Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

文本框随机显示字段

洪佳烽  发表于:2013-01-04 16:05:37  
复制

我想在主页面上添加个文本框或标签,每次登录随机显示一条数据库内某表的记录,效果就像网页随机显示验证码一样,如何实现?

 

Top
叶海峰 发表于:2013-01-04 16:52:38
dlookup("姓名","员工","编号=" & Int((100 * Rnd) + 1))

煮江品茶 发表于:2013-01-04 16:53:08

1、建立一个名曰:“随机查询”,随机排序的查询:
select * from 阁下的数据表名称 order by Rnd(id)

2、在窗体加载事件中写:
me.阁下的文本框名称.value=Dfirst("阁下要引用的字段名称","随机查询")



洪佳烽 发表于:2013-01-05 10:05:12

煮江品茶大大的方法我搞懂了,建立个有自动编号“ID”的表,根据这个表建立个查询:

SELECT 注意事项.id, 注意事项.注意事项
FROM 注意事项
WHERE (((注意事项.id)=Int(Rnd()*100)+1));

然后按大大的步骤2完成即可。

可叶海峰大大的方法还是没搞明白,望详细解释下,谢谢!!



wyh99999 发表于:2013-01-05 22:09:53

我的理解是:查找一个以编号为值的随机数。



dbaseIIIer 发表于:2013-01-06 02:58:12

两天了,还在研究呀? 这么简单的事,我以为2楼,最多3楼就 结案的了!


我就喜欢这样了,运行超快速!


代码获取:

set rs = currentdb().openrecordset("注意事项")     <- 想运行的快的话,这里就直接用表名,不要用查询!

rs.move rnd * rs.recordcount

运行到这里, rs 的当前记录就是随机的了!


如果你是一个窗体的话,窗体数据源就 直接输入表名 不加条件

on open 执行

docmd.GoToRecord ,,acNext,rnd * me.RecordsetCLone.recordcount



不过,题外话:

我觉得随机显示注意事项是不太对的!

我觉得轮选的正路!

任何程式的 Tool Tips ,网站广告 等都是用轮选的,

“至少Rnd 是不能保证 10000个记录在随机10000次后一定能全部展示示!”

用轮选的话,因为用户多了,所以对于用的个人来说就已经是 随机的观感了!





洪佳烽 发表于:2013-01-06 09:41:09

呵呵,我喜欢研究的透一点,既然有别的方法,多学学也不错。

我要显示的记录不是很多,随机应该够用了,如果按照d版主大大说的轮选,不用Rnd,又有什么方法呢?



dbaseIIIer 发表于:2013-01-07 10:11:15

用另外一个表,就一条记录记录最后显示的 id 号,


set rs = currentdb().openrecordset("LastId")

lastid = rs!lastid

nextid = dmin("[id]", "注意事项", "[id]>" & lastid)

if isnull( nextid) then nextid = dmin("[id'],"注意事项")

rs.edit

rs!lastid = nextid

rs.update

rs.close


显示 nextid  的 注意事项!



题外话:d版主大大 是什么?




洪佳烽 发表于:2013-01-07 15:52:59
d=dbaseIIIer,d后面自动省略~这样打字快

总记录:8篇  页次:1/1 9 1 :