4

我想通过使用访问中的加入来更新表 - 2007

UPDATE TABLE1 A INNER JOIN (SELECT ACCODE, SUM(AMOUNT) AS SUM_AMOUNT 
FROM TABLE2 GROUP BY ACCODE) B ON A.ACCODE = B.ACCODE
SET A.TRIAL = A.TRIAL + SUM_AMOUNT

它给了我错误

操作必须使用可更新的查询

我尝试了以下查询,这里没有错误

UPDATE TABLE1 A INNER JOIN TABLE2 B ON A.ACCODE = B.ACCODE
SET A.TRIAL = A.TRIAL + SUM_AMOUNT

请帮我找出第一个查询有什么问题

4

4 回答 4

7

我认为 Access 将您的查询视为不可更新的原因是由于 subquery GROUP BY。您应该能够使用DSum.

UPDATE TABLE1 AS a
SET a.TRIAL = a.TRIAL
    + DSum("AMOUNT", "TABLE2", "ACCODE=" & a.ACCODE)

如果ACCODE是文本而不是数字数据类型,请在表达式中的值周围添加引号DSum

UPDATE TABLE1 AS a
SET a.TRIAL = a.TRIAL
    + DSum("AMOUNT", "TABLE2", "ACCODE='" & a.ACCODE & "'")
于 2013-04-19T06:00:31.113 回答
1

我刚遇到这个问题,这是由于表上的权限。我制作了链接表的副本以测试我的更新查询,并不断收到此错误消息。我很确定我的查询没问题(这是一个简单的更新),所以我在实际表上运行它,但没有收到错误。只是想为将来遇到此问题的其他人添加此内容!

于 2013-12-18T19:35:22.930 回答
0

this error also comes when you are accessing database which is on different PC. so give write permission from security tab of folder and also give write access on sharing permission option. In my case this is worked

于 2013-10-10T12:19:56.850 回答
0

是的,Mandeep,这就是 ms-access 的工作方式。

UPDATE Table1 As T1 INNER JOIN Table2 AS T2 ON T1.F1 = T2.F1
SET T1.F2 = T2.F2

当 T2 是查询时,即使您没有更新 T2,此查询也会引发“操作必须使用可更新查询”错误。

于 2019-04-24T09:51:41.467 回答