生成增量(或无随机重复数据)来自访问计算查询字段中随机生成的数字的数字

问题描述 投票:-1回答:1

目标:我需要一个Access Query来随机生成3位数字,用于为特定日期生成的所有序列号创建唯一的序列号。序列号的一半是通过发货日期生成的,因此对于返回的记录集,3位数值必须是完全唯一的(给定日期最多可以有100条记录)。

要生成随机数,我使用以下函数:

INT((900-100 + 1)*了Rnd()+ 100)

对于查询中返回的第一条记录,此函数会在100到900之间随机生成数字。问题是第一条记录下面的每条记录包含相同的数字,因此为查询中返回的每条记录创建重复的序列号。

我需要的是实现一个增量函数,可以将原始随机生成的数字的值增加1,或者创建语法,告诉Access随机生成数字而没有100-900范围的所有记录返回,而不会出现重复分配号码。

非常感谢您的帮助!

埃里克

ms-access random increment
1个回答
0
投票

你必须种子Rnd。传统的方法是定时器:

=Int((900-100+1)*Rnd(-Timer())+100)

为了禁止欺骗,请记住,随机是随机的,因此唯一的方法是检查之前没有使用过的每个生成的数字 - 如果有,则再次运行该功能。

这意味着,当您接近限制时,将需要越来越多的循环来生成未使用的数字。

© www.soinside.com 2019 - 2024. All rights reserved.