1

我有一个带有(ID,供应商,价格)字段的项目表“VendorItem”和另一个带有(ItemName,AveragePrice)字段的“ItemPrice”的Access数据库。

我想运行一个 SQL 查询来更新来自特定供应商的商品的平均价格,比如说“xxx”。

我得到的错误是“操作必须使用可更新的查询”。这段代码很简单,但我一直没能找到这个错误的原因。我怎么能改变字符串来得到我想要的?

我有:

Sub MP()

Dim strSQL As String

strSQL = "UPDATE ItemPrice SET AveragePrice=(SELECT AVG(Price) FROM VendorItem WHERE Vendor='xxx') WHERE ItemName='xxx'"
DoCmd.RunSQL strSQL

End Sub
4

1 回答 1

1

访问域功能可用于避免“必须使用可更新查询”的抱怨。在这种情况下,请使用DAvg 函数

首先在查询设计器中将此作为新查询进行测试。根据需要进行调整,然后调整您的代码以使用有效的 SQL。

UPDATE ItemPrice
SET AveragePrice = DAvg('Price', 'VendorItem', 'Vendor="xxx"')
WHERE ItemName='xxx'
于 2013-11-05T00:25:56.470 回答