我有一个追加查询,它将值从一个表(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]
,但它不会传递给查询。 (我有截图显示了这一点,但没有足够的声誉点来上传它。)
这与表格的模态/弹出属性有什么关系,还是我还缺少其他东西?
答案 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]"));