"操作必须使用可更新的查询" MS Access中的错误

时间:2014-09-19 14:26:45

标签: ms-access ms-access-2013

我坚持使用此更新查询:

UPDATE [table1] n SET n.kdo = IIf( n.old_kdo IN (SELECT u.id FROM [table2] u WHERE u.id_c<>0),"1","0")

它给了我&#34;操作必须使用可更新的查询&#34;错误(我有所有读/写权限)。

我尝试使用以下方法绕过它:

UPDATE [table1] n SET n.kdo = IIf( n.old_kdo IN (DLookup("id", "table2", "id_c<>0")),"1","0")

它有效,但遗憾的是它只返回第一场比赛。

任何人都知道如何做对吗?会有一些加入查询更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

尝试使用dFirst(),dCount()或类似函数替换子查询,并相应地扩展您的条件:

UPDATE [table1] n SET n.kdo = 
     iif(dCount("*", "table2", "id_c<>0 and id = " & n.old_kdo) > 0 ,"1","0")

对于Update查询中的连接,访问很棘手。