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

Man*_*ngh 4 ms-access ms-access-2007 sql-update

我想通过使用access in access更新表 - 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
Run Code Online (Sandbox Code Playgroud)

它给了我错误

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

我已尝试使用以下查询,此处没有错误

UPDATE TABLE1 A INNER JOIN TABLE2 B ON A.ACCODE = B.ACCODE
SET A.TRIAL = A.TRIAL + SUM_AMOUNT
Run Code Online (Sandbox Code Playgroud)

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

Han*_*sUp 7

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

UPDATE TABLE1 AS a
SET a.TRIAL = a.TRIAL
    + DSum("AMOUNT", "TABLE2", "ACCODE=" & a.ACCODE)
Run Code Online (Sandbox Code Playgroud)

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

UPDATE TABLE1 AS a
SET a.TRIAL = a.TRIAL
    + DSum("AMOUNT", "TABLE2", "ACCODE='" & a.ACCODE & "'")
Run Code Online (Sandbox Code Playgroud)