参数太少。 (1) 预期
Too few parameters. (1) expected
我正在使用 VBA 将参数传递给存储的查询,但一直出现错误。这是存储的查询:
PARAMETERS Parm1 Long;
UPDATE tJ010_SRP4Codes INNER JOIN tZ100_VendorProfiles
ON tJ010_SRP4Codes.SRP4Code = tZ100_VendorProfiles.JdeSRP4Code
SET tJ010_SRP4Codes.Vendor = 'TEST'
WHERE ((([Parm1]=tZ100_VendorProfiles.VendorID)));
这里是调用查询的VBA:
Dim Parm1 As Long
db.QueryDefs(!QueryName).Parameters(Parm1) = intVdrProfileID
db.Execute !QueryName, dbFailOnError
我试过在存储的查询中使用和不使用 "Parameters..." 行。两种方式都出现相同的错误。
存储的查询本身运行良好,只是从 VBA 调用时不行。
使用 DAO.QueryDef
对象,提供参数值,然后执行 QueryDef
Dim qdf As DAO.QueryDef
Set qdf = db.QueryDefs(!QueryName)
qdf.Parameters("Parm1").Value = intVdrProfileID
qdf.Execute dbFailOnError
Parameters("Parm1")
表示名为 Parm1 的参数。如果没有引号,Parameters(Parm1)
,Access 会将 Parm1 解释为一个变量。如果您没有这样的变量,则会引发错误。
也可以通过数字而不是名称来识别参数。编号从零开始,所以 Parameters(0)
表示第一个参数。
注意我假定 !QueryName
是一个记录集值并且是已保存查询的名称。而且我不知道 intVdrProfileID 来自哪里,但假设它对参数值有效。
我正在使用 VBA 将参数传递给存储的查询,但一直出现错误。这是存储的查询:
PARAMETERS Parm1 Long;
UPDATE tJ010_SRP4Codes INNER JOIN tZ100_VendorProfiles
ON tJ010_SRP4Codes.SRP4Code = tZ100_VendorProfiles.JdeSRP4Code
SET tJ010_SRP4Codes.Vendor = 'TEST'
WHERE ((([Parm1]=tZ100_VendorProfiles.VendorID)));
这里是调用查询的VBA:
Dim Parm1 As Long
db.QueryDefs(!QueryName).Parameters(Parm1) = intVdrProfileID
db.Execute !QueryName, dbFailOnError
我试过在存储的查询中使用和不使用 "Parameters..." 行。两种方式都出现相同的错误。 存储的查询本身运行良好,只是从 VBA 调用时不行。
使用 DAO.QueryDef
对象,提供参数值,然后执行 QueryDef
Dim qdf As DAO.QueryDef
Set qdf = db.QueryDefs(!QueryName)
qdf.Parameters("Parm1").Value = intVdrProfileID
qdf.Execute dbFailOnError
Parameters("Parm1")
表示名为 Parm1 的参数。如果没有引号,Parameters(Parm1)
,Access 会将 Parm1 解释为一个变量。如果您没有这样的变量,则会引发错误。
也可以通过数字而不是名称来识别参数。编号从零开始,所以 Parameters(0)
表示第一个参数。
注意我假定 !QueryName
是一个记录集值并且是已保存查询的名称。而且我不知道 intVdrProfileID 来自哪里,但假设它对参数值有效。