我在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