运行时错误 3061 帮助(毫秒访问)

Posted

技术标签:

【中文标题】运行时错误 3061 帮助(毫秒访问)【英文标题】:Runtime Error 3061 Help (ms access) 【发布时间】:2012-07-16 14:50:04 【问题描述】:

我一直在绞尽脑汁试图找出这个查询有什么问题,但我只是看不到它。我正在尝试打开一个记录集,但我不断收到运行时错误 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 中运行它时出现错误。我错过了一些非常简单的东西吗?任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

首先确保您的表单是打开的,然后将表单引用放在引号之外。

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

表单值不适用于 VBA 中使用的记录集。

【讨论】:

做到了。非常感谢。老实说,我从来没有想过这一点,因为我在 DLookUp 的其他地方有完全相同的 where 子句,它工作得很好。 是的。这可能会让人很困惑。

以上是关于运行时错误 3061 帮助(毫秒访问)的主要内容,如果未能解决你的问题,请参考以下文章

Access 2007 运行时错误

访问 INSERT INTO - 几个参数。预计 2

将参数传递给查询访问 VBA

QueryPerformanceCounter 运行时错误

Scala Spark 中的 udf 运行时错误

访问运行时错误 3075