Search code examples
sqlms-accessruntime-errorrecordset

Runtime Error 3061 Help (ms access)


I've been wracking my brain trying to find what is wrong with this query and I just don't see it. I'm trying to open a record set and I keep getting runtime error 3061: "Too few parameters: Expected 1."

Here's my code...

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)

I'm getting the error from the line "Set qRs = CurrentDb().OpenRecordset(qQuery)". I copied and pasted that query into access and ran it and it returned exactly what I want to get in my record set, yet when I run it in VBA I get the error. Am I missing something really simple? Any help would be greatly appreciated.


Solution

  • First ensured that your form is open, then put the form reference outside your quotes.

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

    The form value is not available to a recordset used in VBA.