是否有可能在MS Access中生成每次运行查询时都不会更改的随机数?

时间:2011-05-26 19:17:13

标签: ms-access-2007 random-access

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

感谢您的帮助!

2 个答案:

答案 0 :(得分: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. 

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

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

答案 1 :(得分:1)

在采取否定之前简单地对自动编号进行平方以消除“已经为负”的问题?