无法解析 "Error 3061. Too few parameters. Expected 1"

Unable to resolve "Error 3061. Too few parameters. Expected 1"

我在 VBA

中有这些行
strTOP = "SELECT * FROM CM_qryBOM WHERE BOM_Address Like '*" & Me.Part_No & "'"
Set rsTOP = CurrentDb.OpenRecordset(strTOP, dbOpenSnapshot)

这导致以下 SQL 声明,我在即时 window 中验证了该声明。

SELECT * FROM CM_qryBOM WHERE BOM_Address Like '*601541-19'

当 运行 来自 VBA 时,查询不执行并抛出错误代码 3061。但是,当我将相同的查询复制并粘贴到查询设计 SQL 视图时,它运行得很好。

以前从未遇到过这种情况,不确定如何解决。尝试将 [table 名称] 和 [字段名称] 括起来,但这也无济于事。

在这种情况下,通常的嫌疑人是您从中选择的查询 (CM_qryBOM)。

它可能正在使用表单或报表值作为参数(或查询其他查询)。这些在使用 CurrentDb.OpenRecordset.

时不可用

您可以使用 querydef 和参数手动设置它们,或者您可以构造一个只查询表而不查询其他查询的查询,以确保安全。