役に立ちそうもないTips移転版

俺得なTipsを書き連ねるだけのブログ。

Access: 集計クエリの結果を使って更新したい、けど

たとえばテーブルAに「ID」と「回数」フィールドがあって、テーブルBにはテーブルAの「ID」相当の列(F_IDとでも)がある。
このときA.回数をSELECT COUNT(主キー) AS 回数 FROM B GROUP BY F_ID な集計値で更新したい。

で、これを素直に?サブクエリとしてJOINしてもできないorz (AccessSQLのUPDATE-JOINはそれ自身すでにちょっとけったいだが)
ビュー(つか選択クエリ)でワンクッションおいても無駄orz
というのも、MSKB328828「Access クエリや Access フォームでデータを更新すると発生するエラーをトラブルシューティングする方法」にあるように、集計を含むクエリは更新の元ネタに使えないんだそうなorz

回避策はというと、「定義域集合関数を使え」とあるように
UPDATE A SET 回数=DCount("主キー", "B", "F_ID=" & ID)
とかする。( & の後ろのIDはA.IDね。念のため)