1

私はこのクエリの何が問題になっているのかを見つけようと頭を悩ませてきましたが、それがわかりません。レコードセットを開こうとしていますが、ランタイムエラー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)

「SetqRs=CurrentDb()。OpenRecordset(qQuery)」という行からエラーが発生します。そのクエリをコピーしてアクセスに貼り付けて実行すると、レコードセットで取得したいものが正確に返されましたが、VBAで実行するとエラーが発生します。私は本当に単純なものが欠けていますか?どんな助けでも大歓迎です。

4

1 に答える 1

1

最初にフォームが開いていることを確認してから、フォーム参照を引用符の外に置きます。

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

フォームの値は、VBAで使用されるレコードセットでは使用できません。

于 2012-07-16T14:53:39.737 に答える