首先,无代码解决方案将字段设置为AutoNumber,并将其属性设置为Random。
然后,每当添加记录时,都会插入一个(伪)随机数,您不必提前创建记录。
如果不符合您的目的,在插入数据之后应用随机数可能会更容易。然后你可以使用我的功能:
' Builds random row numbers in a select, append, or create query
' with the option of a initial automatic reset.
'
' 2018-09-11. Gustav Brock, Cactus Data ApS, CPH.
'
Public Function RandomRowNumber( _
ByVal Key As String, _
Optional Reset As Boolean) _
As Single
' Error codes.
' This key is already associated with an element of this collection.
Const KeyIsInUse As Long = 457
Static Keys As New Collection
On Error GoTo Err_RandomRowNumber
If Reset = True Then
Set Keys = Nothing
Else
Keys.Add Rnd(-Timer * Keys.Count), Key
End If
RandomRowNumber = Keys(Key)
Exit_RandomRowNumber:
Exit Function
Err_RandomRowNumber:
Select Case Err
Case KeyIsInUse
' Key is present.
Resume Next
Case Else
' Some other error.
Resume Exit_RandomRowNumber
End Select
End Function
和一个示例查询(使用 Northwind 示例数据库中的表):
SELECT
ID,
[Order ID],
[Unit Price],
RandomRowNumber(CStr([ID])) AS RandowRow
FROM
[Order Details]
ORDER BY
RandomRowNumber(CStr([ID]));
取自我的项目VBA.RowNumbers。
如果您希望不是伪随机数而是真正的随机数,请研究我的项目VBA.Random。