1

(ID, Vendor, Price) フィールドを持つアイテム テーブル "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 に答える