Ошибка выполнения 3061 Справка (мс доступ)

Я ломал голову, пытаясь найти, что не так с этим запросом, и я просто не вижу этого. Я пытаюсь открыть набор записей, но постоянно получаю ошибку выполнения 3061: «Слишком мало параметров: ожидается 1».

Вот мой код...

Dim ansRs As Recordset
Dim qRs As Recordset
Dim ansQuery As String
Dim qQuery As String
Dim i As Integer

qQuery = "Select * From TrainingQuizQuestions Where TrainingQuizID = (Select TrainingQuiz.TrainingQuizID From TrainingQuiz Where QuizName = Forms!MainMenu!txtVidName);"
ansQuery = "Select * From TrainingQuizQuestAns"
Set qRs = CurrentDb().OpenRecordset(qQuery)
Set ansRs = CurrentDb().OpenRecordset(ansQuery)

Я получаю сообщение об ошибке из строки «Set qRs = CurrentDb(). OpenRecordset (qQuery)». Я скопировал и вставил этот запрос в доступ и запустил его, и он вернул именно то, что я хочу получить в моем наборе записей, но когда я запускаю его в VBA, я получаю сообщение об ошибке. Я пропустил что-то действительно простое? Любая помощь будет принята с благодарностью.


person user1529217    schedule 16.07.2012    source источник


Ответы (1)


Сначала убедитесь, что ваша форма открыта, а затем поместите ссылку на форму вне кавычек.

 qQuery = "Select * From TrainingQuizQuestions Where TrainingQuizID = " _
   & "(Select TrainingQuiz.TrainingQuizID From TrainingQuiz Where QuizName = '" _
   & Forms!MainMenu!txtVidName) & "';"

Значение формы недоступно для набора записей, используемого в VBA.

person Fionnuala    schedule 16.07.2012
comment
Это сделало это. Большое спасибо. Честно говоря, я бы никогда не подумал об этом, потому что у меня есть БУКВАЛЬНО такое же предложение where в другом месте в DLookUp, и оно работает просто отлично. - person user1529217; 16.07.2012
comment
Ага. Это может быть довольно запутанным. - person Fionnuala; 16.07.2012