我有一个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
答案 0 :(得分:1)
访问域功能可用于避免“必须使用可更新查询”投诉。在这种情况下,请使用DAvg Function。
首先在查询设计器中将其作为新查询进行测试。根据需要进行调整,然后调整代码以使用工作SQL。
UPDATE ItemPrice
SET AveragePrice = DAvg('Price', 'VendorItem', 'Vendor="xxx"')
WHERE ItemName='xxx'