我正在重新编写一个小的ms-access应用程序以进行检查。
他们想要的是让考试根据考试的大小来抓取一组随机问题。
如果每次考试是问题的一组数字,我可能只是坚持数的TOP语句,并用它来完成,但也有对每个考题数量可变的,所以我想下一次更换常数到TOP了查询中的字段。
TOP
我基本上想要的是这样的:
SELECT TOP tblExam.[ExamSize] * FROM tblExamQuestions INNER JOIN tblExam ON tblExamQuestions.ExamID = tblExam.ExamID WHERE tblExam.ExamID = 10 ORDER BY Rnd(tblExamQuestions.ExamQuestionID);
ExamID当我打开报告时,我将为每次考试提供此查询的新内容,因此这可能会给您带来麻烦。
ExamID
DoCmd.OpenForm strExamName, , , "tblExam.ExamID = " & strExamID
我认为您将必须动态构建查询。
sSQL="SELECT TOP " & DlookUp("ExamSize","tblExam","ExamID = 10") _ & " FROM tblExamQuestions INNER JOIN tblExam " _ & "ON tblExamQuestions.ExamID = tblExam.ExamID " _ & "WHERE tblExam.ExamID = 10 " _ & "ORDER BY Rnd(tblExamQuestions.ExamQuestionID)" '' Permanently change an existing query CurrentDB.QueryDefs("MyReportQuery").SQL=sSQL