MS Access更新查询不可更新

时间:2018-04-11 17:29:14

标签: sql ms-access

我正在尝试使用总计查询(CM_qryLabor6 ...)中的计算数据更新表(CM_WCRoll)。我只需要查询就可以读入数据,因为数据只会被写入可编辑的表中。但是,更新查询不会在加入我的表的不可更新查询的情况下运行。

UPDATE (PM_qryBOM_LvlX_nochild INNER JOIN (CM_qryLabor6_parentunion_sum_PROD INNER JOIN CM_WCRoll ON (CM_qryLabor6_parentunion_sum_PROD.PartID = CM_WCRoll.PartID) AND (CM_qryLabor6_parentunion_sum_PROD.WC_ID = CM_WCRoll.WC_ID)) ON PM_qryBOM_LvlX_nochild.PartID = CM_qryLabor6_parentunion_sum_PROD.PartID) SET CM_WCRoll.SumOfHrs = [CM_qryLabor6_parentunion_sum_PROD].[SumOfHrs];

使用查询中的数据完成更新表的最有效方法是什么?制表是唯一的方法吗?

2 个答案:

答案 0 :(得分:1)

考虑带有子查询DLookUp子句的IN()。由于以下(简写)原始查询将 CM_WCRoll 表与 CM _ 查询匹配,并且仅使用 PM _ 查询进行查找,因此运行{ {1}}用于值分配和查询匹配的子查询。

原始查询

DLookUp

调整后的查询

UPDATE (PM_qryBOM_LvlX_nochild p
INNER JOIN (CM_qryLabor6_parentunion_sum_PROD c
INNER JOIN CM_WCRoll t ON (c.PartID = t.PartID) AND (c.WC_ID = t.WC_ID)) 
     ON p.PartID = c.PartID) 
SET t.SumOfHrs = c.[SumOfHrs];

答案 1 :(得分:-1)

我最终将只读查询数据粘贴到新的生成表,然后使用更新查询将数据从生成表传输到目标表。它正在按预期工作,似乎是运行速度最快的方法,而不是使用DLookUp,这需要一些时间来运行。