2013-12-16 83 views
0

我有一個數據庫有一個窗體,可以爲MS Access數據庫中的一組特定信息生成一個ID。此ID是爲當前日期和隨機6位數字。目前,我的日期字段的默認值爲=Date(),而隨機數字段的默認值爲Right(Format(Rnd()*1000000,'000000'),6)以獲得6位數字,然後我在ID字段中使用此=[DateRequested] & "-" & [RandomNumber]以獲得字符串的連接版本,中央。兩者都正常工作,但是當我關閉並重新打開數據庫時,我得到的數字相同。我在這裏看到了一些關於在代碼中發佈Randomize聲明的問題,但我並不擅長代碼,也不知道如何實現它。隨機6位數字(無重複)MS Access 2010數據庫?

我想從我可以從線程放在一起這樣做的:

Private Sub Form_Load() 
Randomize() 
End Sub 

但我收到此錯誤信息:

Compile error: Expected: =

我只需要知道我需要改變爲了讓數據庫在每次打開數據庫時都提取一個新的6位數字,而不是每次都使用同一組數字。

+1

爲什麼不只是時間戳呢?用戶羣是否如此之大,以至於可能存在關於同時點擊的擔憂?如果不是那麼'= [DateRequested]&「 - 」&格式(日期,「ddmmyyyyHhNnSs」)似乎它會工作得很好,而且更具描述性。或者,如果DateRequested =日期然後只是使用'=格式(日期,「mm/dd/yyyy-HhNnSs」)'我建議這一點,即使你要求6位數字的原因是你的隨機數可能會重複偶然,這不會除非計算機時間關閉或2個用戶在同一時間調用。 – engineersmnky

+0

該ID用於取消識別數據,並將用於相互關聯信息。用戶羣很小,因此同時點擊並不是真正的問題。但是,我確實需要這個數字是6位數字。無論如何,我確實嘗試了您的代碼,並生成「12/16/2013-Date」。 – mw90

+0

抱歉,應格式(日期(),「ddmmyyyyHhNnSs」)' – engineersmnky

回答

0

刪除調用隨機數的括號

+0

我也嘗試過,但所有原因是我再次獲得相同的一組數字。這是我放置代碼的位置嗎? – mw90

+0

@ mw90:你應該在開始產生隨機數之前調用Randomize。或者你可以定義一個調用Randomize並返回Rnd()的函數,並調用這個函數而不是直接調用Rnd()。第一個選項表現更好,也許是一個autoexec宏?如果沒有,第二個選項應該工作。 –

+0

我不確定如何做你提到的任何一件事情。但是,我想你是說我需要將Rnd()代碼放在VB中的隨機化代碼之後? – mw90