MS Access

もう何度もAccessの集計クエリの作成をミスって怒られている

投稿日:2013年7月4日 更新日:

私が悪い。反省。

自戒のメモ。

Accessの集計クエリに条件を加えたい場合、その条件をどこに書くかによって結果が全く違ってくる。

全画面キャプチャ 20130704 174616

それをわかってはいるのだが・・・最大やら演算やら、細かいことを同時にしたい場合、私の馬鹿が露呈し、間違ったものを作ってしまう。

ポイントは、集計クエリでは、仮にテーブルに含まれる顧客IDが10件あったとして、
1.それが集計クエリのWhere条件以外(!)の条件を使ってまとめられ、
2.結果がさらにWhere条件に記した条件で抽出される・・・
・・・という流れになる。これが頭にしっかり入っていればいいのだが、なぜか身につかない。

全画面キャプチャ 20130704 172949

つまり、画像上のクエリでは、Where条件がないので、住所既定にTrueがセットされたレコードの住所を期待しても、同じ顧客IDではあるが、全く違うレコードの一部をつまんで1つに作り替えてしまうので、違う住所になる可能性が出てくる。
スロットマシンみたいに・・・ああ。

-MS Access

執筆者:

関連記事

no image

Accessであらかじめリンクテーブルを開いておくと劇的に高速化

リンクテーブルに対して「Dlookupで値を探して見つかったらCurrentDb.Execute UPDATE~ で値を更新」という処理をループで回している。 この処理、一旦始めると、終えるのに30分 …

no image

Accessで DoCmd.RunSQL を CurrentDb.Executeにしたら、1秒高速化した

処理が遅いので速くして欲しいとの要望があったので、コードを調査。 DoCmd.RunSQL を CurrentDb.Execute に置き換えると非同期で実行されるとの情報を得たので、試す。 結果、6 …

no image

Accessでレコードコピー(オートナンバー除く)の決定版のコード!

Accessで、レコードのオートナンバーを除くフィールドを1行、複製(コピー)したくって、Google検索したのだけどなかなか出てこず、しかしやっと見つけた、黄金のソース・・・・。 [VBA] ADO …

no image

Accessの再クエリーでデータが移動してしまうのを解消

仕事メモ。 メイン・明細フォームのときは、 http://www.sanryu.net/acc/tips/tips323.htm を参考に、 Dim m_offset As Long ‘レ …

no image

パラメータクエリにパラメータをセットして実行した結果をデータシートで表示する」というコードの実行で3065エラー

Accessの仕様として、パラメータクエリだけが駄目なのかと思ったら、なんと選択クエリが駄目なのだそう。 理由は、Executeメソッドはアクションクエリのもので、選択クエリのものではないからだそう。 …