0

我正在尝试从我的 Microsoft Access 数据库中随机抽取 200 条记录。我创建了一个查询并在新字段中使用 rnd() 函数为每条记录生成一个随机数。然后我对随机数字段进行排序并检索前 200 篇文章。我的问题是每次运行查询时,都会得到不同的随机数。我知道在其他程序中,您可以为种子设置用户定义的值,这个问题将得到解决,但是我不知道如何在 MS Access 中自己设置种子值。这可能吗?

谢谢您的帮助!

4

2 回答 2

1

您是否尝试阅读 Rnd() 函数的 Access 帮助?该函数只有一个参数,帮助文件定义了种子的作用:

   If number is            Rnd generates 
   Less than zero          The same number every time, using number as the seed. 
   Greater than zero       The next random number in the sequence. 
   Equal to zero           The most recently generated number. 
   Not supplied            The next random number in the sequence. 

因此,您希望在每次运行查询时为每一行传递一个相同的负数。自动编号 PK 将是一个理想的候选者,因为它是独一无二的——只需使用Rnd(-MyPK).

唯一的问题是如果您使用的是随机自动编号,在这种情况下,某些数字已经是负数,所以您会遇到问题。我没有一个很好的解决方案来避免冲突(即两行产生相同的值,因为它们具有相同的绝对值)并且不会导致溢出。

于 2011-05-28T22:29:52.140 回答
1

只需在取负数之前将自动编号平方即可消除“已经负数”的问题?

于 2011-07-26T19:42:06.980 回答