您好,我是这个网站的新手,如果您做错了什么,对不起,请随时纠正我:D这是我的问题:我在MS Access中进行某种测验,被卡住了。表单上的文本框(其中有20个),并使用此代码,我从制作的表中调用了txtboxes中的值。
Dim a As Integer
Dim txtbox(19) As TextBox
For a = 1 To 20
Controls("Txtbox" & a).Value = DLookup("Question", "questions_and_answers", "[questions_and_answers]![questionID]=Int((20 - 1 + 1) * Rnd + 1)")
Next a
现在,我不想重复这些值,因此我需要调用20个不同的值(问题),但我不知道如何,有什么帮助吗?
如果我理解正确,那么您希望每次打开表格时都会打乱这20个问题吗?使用随机数时不允许重复的一种简单方法是存储已保存的数字。您可以初始化两个变量:
dim strUsedQuestions as string :strUsedQuestions =",0,"
dim rndNum as integer
并将循环更改为:
For a = 1 To 20
Do while instr( 1, strUsedQuestions, "," & rndNum & ",") > 0 then ' change the number until it is new question
rndNum = Int((20 - 1 + 1) * Rnd + 1)
Loop
Controls("Txtbox" & a).Value = DLookup("Question", "questions_and_answers", "[questions_and_answers]![questionID]=" & rndNum )
strUsedQuestions = strUsedQuestions & rndNum & ","
Next a
但是,这有点棘手和冒险。如果您没有足够的问题,则代码将陷入无限循环!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句