admin

N基于MS-Access中自己的SQL语句的最佳记录选择

sql

我正在重新编写一个小的ms-access应用程序以进行检查。

他们想要的是让考试根据考试的大小来抓取一组随机问题。

如果每次考试是问题的一组数字,我可能只是坚持数的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当我打开报告时,我将为每次考试提供此查询的新内容,因此这可能会给您带来麻烦。

DoCmd.OpenForm strExamName, , , "tblExam.ExamID = " & strExamID

阅读 233

收藏
2021-07-01

共1个答案

admin

我认为您将必须动态构建查询。

 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
2021-07-01