Ms access MS Access 2007-使用更新中的表连接选择查询

Ms access MS Access 2007-使用更新中的表连接选择查询,ms-access,Ms Access,我正试图用select查询的结果更新第三个表-我知道如何在mysql上执行此操作,但access会让人发疯: 我有以下声明: UPDATE ceilings LEFT JOIN (SELECT ceiling_number AS cc, Count(type=3) AS st FROM ceiling INNER JOIN materials ON ceiling.material_number = materials.id GROUP BY ceiling.ceiling_number) A

我正试图用select查询的结果更新第三个表-我知道如何在mysql上执行此操作,但access会让人发疯:

我有以下声明:

UPDATE ceilings LEFT JOIN
(SELECT ceiling_number AS cc, Count(type=3) AS st FROM ceiling INNER JOIN materials ON ceiling.material_number = materials.id GROUP BY ceiling.ceiling_number)  AS q
ON q.cc=ceilings.ceilingid SET ceilings.stairs = q.st;
但它不会更新表,当我想要执行该语句时,会出现以下错误:

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


如果有人能帮我,那就太好了。

更新查询无法处理其他几种类型的查询,包括分组方式、总计、交叉表或带有左或右连接以及内部连接的查询

根据您对Access和VBA的舒适程度,有几种解决方案

首先创建一个临时表。将查询结果写入临时表,然后使用临时表更新查询结果

使用VBA创建和存储不可更新查询的值,然后使用记录集,循环遍历记录并更新表中的值


分组依据/总计查询始终为只读。不能使用存储过程吗?然后,您可以在Access中使用SQL查询,而且它的性能更快。什么是最佳解决方法?使用vba存储选择查询?然后写回一个update语句?这是一个偏好的问题。我喜欢采用更简单的方法创建一个临时表,然后用它来更新您的celilings表。每次使用之前,不要忘记删除临时文件的内容。