如何使用特定数字范围内的随机唯一数字进行 Microsoft 访问更新查询或 vb 功能

How to do microsoft access update query or vb function which use random unique number with in specific numbers range

我如何编写 MS 访问更新查询来更新 table 使用随机唯一编号但在特定范围内的记录。

这是我需要帮助的

之前的问题

id id1 time2 tim1
1 101 8.12 9.11
2 102 8.20 9.45
3 103 8.31 9.12
4 104 8.10 9.10
5 105 8.55 9.43

在 运行 查询之后

UPDATE Table1 SET Table1.time2 = RanNumBtw(10,20), Table1.tim1 = RanNumBtw(10,20)
WHERE (((Table1.id1) In (101,102)));

我不需要的输出

id id1 time2 tim1
1 101 13 13
2 102 13 13
3 103 8.31 9.12
4 104 8.10 9.10
5 105 8.55 9.43

我需要什么作为输出

id id1 time2 tim1
1 101 13 16
2 102 19 11
3 103 8.31 9.12
4 104 8.10 9.10
5 105 8.55 9.43

现在的问题是我需要做的是根据 id1 列在特定范围内更新 time2 列和 tim1 列。

就像其中 id1 是 101,102 更新 time2 在(8.10 到 8.30)之间和 tim1 在(9.10 到 9.30)之间更新为随机唯一编号。

我试过 vb 生成指定范围内数字的函数,但它一次又一次地更新为相同的数字

Public Function RanNumBtw(ByVal LwLimit As Long, ByVal UpLimit As Long) As Long 
    Randomize
    RanNumBtw = Rnd * (UpLimit - LwLimit) + LwLimit
End Function

此函数的作用是再次为所有单元格提供相同的数字

查询或vb代码会有所帮助

感谢

将您的函数更改为:

Public Function RanNumBtw(LwLimit As Long, UpLimit As Long, RandInit As Long) As Long
    Randomize RandInit + Now()
    RanNumBtw = Rnd * (UpLimit - LwLimit) + LwLimit
End Function

并查询为:

UPDATE Table1 SET Table1.time2 = RanNumBtw(10,20,[id]), Table1.tim1 = RanNumBtw(10,20,[id])
WHERE (((Table1.id1) In (101,102)));

如果每行的参数相同,则访问兑现函数结果。