ACCESS中SELECT正常运行但INSERT语句弹出参数框无法生效问题求助
问题原因排查
- 核心错误:
INSERT语句中的SELECT子句表引用不匹配。你的FROM指定的数据源是szurt表,但SELECT后所有字段都加了int_alapfeladat表前缀,szurt表中不存在该前缀对应的字段,Access无法识别就会将其判定为未定义参数,弹出参数输入窗口。 - 其他可能的错误点:
szurt表中不存在text1、text2字段,或者字段名拼写错误- 名为
start的窗体未处于打开状态,或者窗体上不存在k1、k2控件,或者控件名拼写错误 szurt表中不存在你要查询的fenntart_tipus、fenntart_megnev等目标字段,或者字段名拼写错误
修正后参考代码
如果你的需求是从szurt表筛选符合条件的记录,插入到int_alapfeladat表,保证szurt表包含对应字段的前提下,修正后的SQL如下:
INSERT INTO int_alapfeladat ( fenntart_tipus, fenntart_megnev, fenntart_kapcs, fenntart_elerhet, om ) SELECT szurt.fenntart_tipus, szurt.fenntart_megnev, szurt.fenntart_kapcs, szurt.fenntart_elerhet, szurt.OM FROM szurt WHERE (Forms!start!k1 = FALSE OR szurt.[text1] = TRUE) AND (Forms!start!k2 = FALSE OR szurt.[text2] = TRUE);
如果你的需求是结合szurt表的筛选条件,从int_alapfeladat表查询符合要求的记录插入,需要先关联两张表,参考代码如下(将公共关联ID替换为两张表对应的匹配字段即可):
INSERT INTO int_alapfeladat ( fenntart_tipus, fenntart_megnev, fenntart_kapcs, fenntart_elerhet, om ) SELECT a.fenntart_tipus, a.fenntart_megnev, a.fenntart_kapcs, a.fenntart_elerhet, a.OM FROM int_alapfeladat a INNER JOIN szurt s ON a.公共关联ID = s.公共关联ID WHERE (Forms!start!k1 = FALSE OR s.[text1] = TRUE) AND (Forms!start!k2 = FALSE OR s.[text2] = TRUE);
验证方法
可以单独提取INSERT语句中的SELECT部分单独运行,若仍弹出参数输入框,可逐段删除字段/条件,定位到具体引用错误的字段或控件即可。
内容的提问来源于stack exchange,提问作者Dummie
相关产品推荐
相关产品推荐

