我在Access中工作,我需要创建一个随机的4位数分隔为记录的用户列表。我的查询不断返回每个记录相同的随机数。为Access或SQL中的每条记录创建一个随机4位数字?
SELECT 1000 + (1999-1000)*RND() as [PassCodes],
stafflistEMAIL.Name, stafflistEMAIL.Description
FROM stafflistEMAIL;
如何使这项工作,其他答案我已查看不提供解决方案?
我在Access中工作,我需要创建一个随机的4位数分隔为记录的用户列表。我的查询不断返回每个记录相同的随机数。为Access或SQL中的每条记录创建一个随机4位数字?
SELECT 1000 + (1999-1000)*RND() as [PassCodes],
stafflistEMAIL.Name, stafflistEMAIL.Description
FROM stafflistEMAIL;
如何使这项工作,其他答案我已查看不提供解决方案?
Repeating random variables in VBA
在致电Rnd
,使用Randomize
声明没有参数与基于系统计时器的种子初始化随机数生成器。
取决于你的目标有很多,你可以做一些有趣的事情是这样的:
Right(Cstr(CInt(Len(stafflistEMAIL.Name)*Len(stafflistEMAIL.Description)/1000)),4)
如果系统计时器的分辨率为1秒,并且查询速度比此更快,这是行不通的。您需要确保计时器的打勾速度比收到查询的速度快。 – djconnel 2012-08-16 17:13:14
如果您正在运行除VBA以外的查询,我不知道如何执行您想要的操作。我建议你将它转移到VBA进行良好的控制 - 大概这是一个相当重要的功能。例如,我在想,你希望这些数字是唯一的;所以你需要一种方法来检查,并且VBA提供你需要的控制。 – Smandoli 2012-08-16 17:13:45
djconnel - 这是一个伟大的观点。再说一次,这是针对VBA的;如果定时器不变(如果不是随机的,但我认为它满足需要),则增加+1。 – Smandoli 2012-08-16 17:17:17
就像一个想法,下面将给出4个随机字符:
Mid(CreateObject("Scripting.FileSystemObject").GetTempName,4,4)
例如:
906F
0818
25A5
F200
918F
A166
非常酷的+1 – Smandoli 2012-08-16 20:08:29
听起来好像您正在生成PIN码。有独特的数字是非常重要的吗?可以帮助我们知道。 – Smandoli 2012-08-16 17:19:33
随机数不是唯一的,你知道吗,是吗? – Fionnuala 2012-08-16 18:14:05
对于查询,您可以使用字段运行rand:'Int(1000+(1999-1000)* Rnd([akey]))' – Fionnuala 2012-08-16 18:16:17