在ACCESS中更新查询连接表和子选择

时间:2015-09-28 13:18:30

标签: sql vba ms-access ms-access-2007

我正在尝试使用以下代码更新table1的字段,但是我收到以下错误消息:3073操作必须使用可更新的查询。

UPDATE table1 a 
INNER JOIN (SELECT COUNT(somevalue) AS Total,ID 
FROM ReadsPNPA GROUP BY ID) b 
ON a.ID=b.ID 
SET a.Total = b.Total 

有什么想法吗? subselect查询可以自行运行。

1 个答案:

答案 0 :(得分:3)

使用DCount表达式代替子查询来执行UPDATE ...

UPDATE table1 a 
SET a.Total = DCount('somevalue', 'ReadsPNPA', '[ID]=' & a.ID);

访问UPDATE查询非常繁琐。子查询或GROUP BY等技术会导致Access将查询视为“不可更新”。有关详细信息,请参阅Why is my query read-only?

您可以使用域聚合函数(例如DCountDSumDAvg等),以便Access将查询视为可更新。