我在打開更新查詢的分割表單上有一個按鈕,該更新查詢更新我的表的隨機ID字段,然後通過隨機ID對錶進行排序。它用「Rnd([ID])* Rnd(Now())」更新字段,使得看起來是足夠隨機的值。它似乎工作得很好,直到我意識到錯在哪裏。返回相同的一系列隨機值
每次打開Access,加載數據庫表單,然後單擊按鈕,我會得到相同的一系列隨機值。第一次點擊按鈕時,例如,頂部的項目是項目X,隨機ID已被設置爲1.53779983520508E-05。如果再次點擊它,項目Y現在位於頂部,其隨機ID爲9.06816168821933E-08。第三次,項目Z在頂部,隨機ID爲1.8881419094896E-08。
我可以一直按下按鈕,並獲得全新的訂單和數字,這很適合我。問題是當我不得不重新打開數據庫時。
無論表格以什麼順序開始,即使我將它恢復爲完全使用另一個字段作爲排序順序,當我在打開數據庫之後首次單擊隨機化按鈕時,項目X始終位於頂部,始終價值9.06816168821933E-08。在第二次點擊時,項目Y與1.53779983520508E-05。第三次點擊,項目Z與1.8881419094896E-08。每次連續點擊都會返回與上一次在上一次會話中達到該點時相同的一組隨機ID值。
我曾嘗試增加了隨機化按鈕RunCode並調用RandomizeFunc(),這是我寫的一個這樣的功能:
Option Compare Database
-----
Public Function RandomizeFunc()
Randomize
End Function
我明白,只是打電話隨機化重置隨機種子。但它沒有任何區別。值的順序始終相同。
誰能告訴我我到底在做什麼錯?
編輯:
這是分配隨機ID查詢
Assign Random ID
-----
Field: Random ID
Table: Items
Update To: Rnd([ID])*Rnd(Now())*Rnd([ID]*Now())
(我加了一些外來賽第一輪在妄圖獲取值停止重複...)
這是隨機化按鈕嵌入的宏看起來像
Randomize : On Click
-----
RunCode
Function Name RandomizeFunc()
OpenQuery
QueryName Assign Random ID
View Datasheet
Data Mode Read Only
SetOrderBy
OrderBy [Random ID]
Control Name
如何使用'Rnd'的代碼?並且,何時/何時調用了RandomizeFunc? – user2864740
我添加了來自查詢和嵌入式宏的代碼 –