2014-09-19 73 views
0

我堅持此更新查詢:「操作必須使用一個可更新的查詢」錯誤在MS Access

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

它給了我「操作必須使用一個可更新的查詢」的錯誤(我都讀/寫權限)。

我試圖繞過它通過使用:

UPDATE [table1] n SET n.kdo = IIf(n.old_kdo IN (DLookup("id", "table2", "id_c<>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") 

訪問是棘手的更新連接的查詢。

+0

好主意,作品像魅力,謝謝:) – Johncze 2014-09-25 09:43:31

相關問題