N Selección de logging superior basada en statement de SQL propio en MS-Access

Estoy volviendo a escribir una pequeña aplicación de acceso ms para tomar exámenes.

Lo que quieren es que las testings capten un set de preguntas aleatorias según el tamaño del examen.

Si cada examen fue un número determinado de preguntas, podría simplemente colocar el número en la statement TOP y terminarlo, pero hay un número variable de preguntas para cada examen, así que quiero replace el número constante al lado del TOP con un campo de la consulta.

Lo que básicamente quiero es así:

 SELECT TOP tblExam.[ExamSize] * FROM tblExamQuestions INNER JOIN tblExam ON tblExamQuestions.ExamID = tblExam.ExamID WHERE tblExam.ExamID = 10 ORDER BY Rnd(tblExamQuestions.ExamQuestionID); 

Estoy suministrando el nuevo ExamID a esta consulta para cada session de examen cuando abro el informe, por lo que probablemente se interponga.

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

Creo que tendrías que build la consulta dinámicamente.

  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