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のフォームでテキストボックスに入れた値を次回オープン時の既定値として自身に保存するには

ちょっとだけ苦労した。 次回もきっと使うことがあるだろうから、メモメモ。 現在の値を変数に入れておく(これをしておかないと、次の処理でデザインビューに切り替わるために入力した値も消える)。 フォームを …

Office365にはSharePointリストという表データが保存できる機能がありAccessのリンクテーブルにできる

Office365では、AccessのWebアプリを作れる。 それで今、勉強しているのだが、Office365にはSharePointリストという表データが保存でき、それをAccessのリンクテーブル …

no image

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

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

no image

DoCmd.GoToRecordよりもMe.SaveよりもMe.Refresh

Accessで、一旦フォーム上のレコードを保存したいとき、 Me.Save とやってもレコードが保存されない。 そこで、今までは、DoCmd.GoToRecordで無理矢理レコードを移動して保存してい …

Accessで複数レコードを1レコードにまとめる(運送会社送り状作成のため

Accessに入れてある楽天の注文データをもとに、運送屋さんの送り状伝票を作ろうと思い立った。 しかし、楽天の注文データは、同一の受注番号で複数の商品に分かれている。 例えば一人の人が3点買い物をした …