Ms access 访问:如何从查询写入更新?
在我的表Ms access 访问:如何从查询写入更新?,ms-access,Ms Access,在我的表Progetti中,我需要使用查询Query2更新字段Eroso 要在Progetti.Eroso上输入的值必须取自查询[Fatture query],其中[Fatture query].[Codice Progetto]=Progetti.[Codice Progetto] 问题是我在Query2中使用的SQL可能是错误的,因为我没有预期的结果:系统要求插入[fature Query].Sum。Query2中的代码如下所示 UPDATE Progetti SET Progetti.Er
Progetti
中,我需要使用查询Query2
更新字段Eroso
要在Progetti.Eroso上输入的值必须取自查询[Fatture query]
,其中[Fatture query].[Codice Progetto]=Progetti.[Codice Progetto]
问题是我在Query2
中使用的SQL可能是错误的,因为我没有预期的结果:系统要求插入[fature Query].Sum
。Query2
中的代码如下所示
UPDATE Progetti SET Progetti.Eroso = [Fatture Query].Sum;
编辑
这是[fature Query]
的SQL代码:
SELECT Fatture.[Codice Progetto], Sum(Fatture.Fattura) AS [Sum]
FROM Fatture
GROUP BY Fatture.[Codice Progetto];
我认为问题在于更新查询没有指定[fature query]
中的行与[Progretti]
中的行如何匹配,因此系统不知道要查看哪一行。尝试使用如下的WHERE
子句:
UPDATE Progetti SET Progetti.Eroso = [Fatture Query].Sum WHERE [Fatture Query].[Codice Progetto] = Progetti.[Codice Progetto];
我认为问题在于更新查询没有指定[fature query]
中的行与[Progretti]
中的行如何匹配,因此系统不知道要查看哪一行。尝试使用如下的WHERE
子句:
UPDATE Progetti SET Progetti.Eroso = [Fatture Query].Sum WHERE [Fatture Query].[Codice Progetto] = Progetti.[Codice Progetto];
由于您的查询Fatture查询
使用聚合函数(SUM
),因此引用此查询的任何查询都不再是可更新的,因为一旦聚合记录,就存在固有的一对多关系
因此,我相信您需要使用一个函数,例如,为每个要更新的记录计算适当的值,例如:
UPDATE
Progetti
SET
Progetti.Eroso = DSUM("Fattura", "Fatture", "[Codice Progetto] = '" & [Codice Progetto] & "'")
相反,如果从中获取值的查询未使用聚合函数(例如,SUM
,MIN
,MAX
等)然后我建议在更新
查询中加入内部联接
,以便用于更新目标字段的值来自Fatture查询
查询中的相应记录,例如:
UPDATE
Progetti
INNER JOIN
[Fatture Query]
ON
Progetti.[Codice Progetto] = [Fatture Query].[Codice Progetto]
SET
Progetti.Eroso = [Fatture Query].Sum
由于您的查询Fatture查询
使用聚合函数(SUM
),因此引用此查询的任何查询都不再是可更新的,因为一旦聚合记录,就存在固有的一对多关系
因此,我相信您需要使用一个函数,例如,为每个要更新的记录计算适当的值,例如:
UPDATE
Progetti
SET
Progetti.Eroso = DSUM("Fattura", "Fatture", "[Codice Progetto] = '" & [Codice Progetto] & "'")
相反,如果从中获取值的查询未使用聚合函数(例如,SUM
,MIN
,MAX
等)然后我建议在更新
查询中加入内部联接
,以便用于更新目标字段的值来自Fatture查询
查询中的相应记录,例如:
UPDATE
Progetti
INNER JOIN
[Fatture Query]
ON
Progetti.[Codice Progetto] = [Fatture Query].[Codice Progetto]
SET
Progetti.Eroso = [Fatture Query].Sum
谢谢,但上面说“操作必须使用可更新的查询”您的查询定义是什么。“查询定义”是什么意思?您能用查询的SQL代码更新您的问题吗?您可以通过单击Design
按钮下方的向下箭头并选择SQL
来查看此信息,谢谢,但它会显示“操作必须使用可更新的查询”您的查询定义是什么fature查询
?很抱歉,我没有得到。“查询定义”是什么意思?您能用查询的SQL代码更新您的问题吗?您可以通过单击Design
按钮下方的向下箭头并选择SQL
谢谢,但它仍要求插入[fature Query]。Sum
谢谢,但它仍要求插入[fature Query]。Sum