vb如何随机生成值

来源:百度知道 编辑:UC知道 时间:2024/09/24 04:23:10
我做一个排考场的系统。依据条件从表格中挑选出了符合条件的值,生成一个记录集,再怎么从记录集中随机生成一个呢。我之前也查阅了相关的东西,一般都是基于编号生成随机数,可是我这个生成的动态记录集中的编号是跳跃性的。请各位指教

假设记录集中有N条记录,先用RND生成一个1到N之间的随机整数M,然后用FOR循环,从1到M,循环中每次记录集指针后移一次,FOR循环结束时记录集指针就会指向第M条记录。
这样应该可以。

思路一:直接在全范围生成随机数,判断是否在记录集内,是则取用,不是则重取,以此类推
如果记录集占全范围的比重还是比较大的,这个方法应该可行
思路二:搞个数组,例如记录集30个数,那么用a(1)到a(30)30个变量,生成记录集后就把值赋给这些变量,接下来只需抽取变量名,而变量名是连续的
不知道我说清楚没有

string=Chr(Int((26 * Rnd) + 65))这是一个生成随机字母的例子

直接从数据表中生成:

sql server 2000 可以用其newid函数:

select top 1 *
from tb
where 各项条件
order by newid()
---------------------------------------------------------------------

access 稍稍麻烦点:
dim r as single
dim sql as string

randomize
r=rnd()
sql="select top 1 * from tb where 各项条件 order by rnd("& r &"-编号)"

上面这个0<=r<1,编号是你表中的一个数值字段不要求连续
只要SQL语句的rnd中的r值减编号是个负值就行(所以相乘也可以)....