UPDATE SET SELECT错误“操作必须使用可更新的查询”

时间:2013-11-05 00:15:38

标签: sql ms-access access-vba

我有一个Access数据库,其项目表“VendorItem”包含(ID,Vendor,Price)字段,另一个“ItemPrice”包含(ItemName,AveragePrice)字段。

我想运行一个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

1 个答案:

答案 0 :(得分:1)

访问域功能可用于避免“必须使用可更新查询”投诉。在这种情况下,请使用DAvg Function

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

UPDATE ItemPrice
SET AveragePrice = DAvg('Price', 'VendorItem', 'Vendor="xxx"')
WHERE ItemName='xxx'