MS Access查询未从VBA接收参数

时间:2014-10-16 03:29:46

标签: sql ms-access access-vba

我有一个追加查询,它将值从一个表(tbl_LSI)复制到另一个表(tbl_LSI_USD):

qry_Append_to_LTI_USD:

INSERT INTO tbl_LTI_USD
SELECT *
FROM tbl_LTI AS lti
WHERE lti.LTI_ID=[Forms]![frm_LTI]![LTI_ID];

我在AfterUpdate格式的frm_LTI事件上调用此查询,其中LTI_ID来自字段LTI_ID。我使用的VBA是:

db.Execute "qry_Append_to_LTI_USD", dbFailOnError

我有完全相同的代码,适用于不同的形式和表组合,但出于某种原因,当我尝试执行此表时,它会失败并请求参数:

Run-time error '3061'
Too few parameters. Expected 1

表单之间的唯一区别是这一个(frm_LTI)是modal & popup = Yes,而工作表单modal & popup = No

VBA代码可以看到debug.print[frm_LTI]![LTI_ID],但它不会传递给查询。 (我有截图显示了这一点,但没有足够的声誉点来上传它。)

这与表格的模态/弹出属性有什么关系,还是我还缺少其他东西?

1 个答案:

答案 0 :(得分:0)

如果Execute出现此类问题,请使用带有子查询的数据透视查询。尝试使用此WHERE lti.LTI_ID=[Forms]![frm_LTI]![LTI_ID];替换WHERE lti.LTI_ID=eval("[Forms]![frm_LTI]![LTI_ID]");。但有时也需要类型转换(例如日期):WHERE lti.LTI_ID=cDbl(eval("[Forms]![frm_LTI]![LTI_ID]"));