使用UPDATE同步表数据时遇“operation must use an updateable query”错误求助
解决Access中UPDATE子查询引发的“operation must use an updateable query”错误
你遇到的是Access对嵌套子查询的UPDATE语句支持有限导致的问题,以下是几种可行的解决办法:
改用JOIN关联的UPDATE语句
Access更认可直接关联两张表的更新写法,这种形式属于可更新查询:UPDATE parts INNER JOIN sheets ON parts.sheetid = sheets.sheetid SET parts.sheetname = sheets.sheetname;确保子查询返回唯一值
如果sheets表中存在同一个sheetid对应多条记录的情况,子查询会返回多个结果,导致查询不可更新。可以通过TOP 1限制返回单条,或者先给sheets.sheetid设置唯一约束:UPDATE parts SET sheetname = (SELECT TOP 1 sheetname FROM sheets WHERE sheets.sheetid = parts.sheetid);使用域聚合函数DLookup
这种方法虽然效率略低,但能绕过子查询的限制,适合数据量不大的场景:-- 若sheetid是文本类型 UPDATE parts SET sheetname = DLookup("sheetname", "sheets", "sheetid = '" & parts.sheetid & "'"); -- 若sheetid是数字类型,去掉单引号 UPDATE parts SET sheetname = DLookup("sheetname", "sheets", "sheetid = " & parts.sheetid);
内容的提问来源于stack exchange,提问作者Perry 59
相关产品推荐
相关产品推荐

