我坚持使用此更新查询:
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")
它有效,但遗憾的是它只返回第一场比赛。
任何人都知道如何做对吗?会有一些加入查询更好的解决方案吗?
答案 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查询中的连接,访问很棘手。