Microsoft Access 掲示板

クエリ内の一つのフィールドが参照するテーブルを切り替えることは可能でしょうか?

2 コメント
views
4 フォロー

いつもお世話になっております。
Access初心者で、クエリについて勉強中ですがいまいち理解が深まりません。教えてください。

全く同じフィールドをもっているテーブルA-1とテーブルA-2があります。
またもう一方で同じフィールドを持っているB-1、B-2、B-3、B-4があります。
AグループとBグループは異なるフィールドになります。
AグループとBグループは一つだけ同じフィールドを持っていて、それをつないでいます(リレーションシップ?)
するとクエリはA-1×B-1、A-1×B-2・・・と全部で8とおり、8つのクエリを作っています。
そのクエリをレポートで表示させているのですが、これを何とか一つのクエリにまとめることが可能でしょうか?

クエリのデザインビューで選択する各フィールドのテーブルをVBAから切り替えればいいのかなと思っているのですが、
そのやり方がさっぱり検討もつきません。
よろしくお願いいたします。

nanana
作成: 2022/02/15 (火) 10:24:50
通報 ...
1

まったく同じフィールドを持っているテーブルを分けるのはデータベース的にはNGな設計になります。一つのテーブルにまとめるべきです。

例えば、A-1とA-2が全く同じフィールドなら、一つのテーブルにして、2つを識別するフィールドを追加します。
A-1とA-2の主キーが重複するなら、識別フィールドと現状の主キーの複合主キーにします。
B-1、B-2、B-3、B-4に関しても同様に一つのテーブルにまとめます。

そうすれば、クエリは一つですみます。あとは、それぞれの識別フィールドに抽出条件を設定すれば希望のデータを取り出せます。
レポートなら開くときにOpenReportメソッドの引数で抽出条件を設定することができます。

2
nanana 2022/02/15 (火) 12:49:34 e48ae@6eb0c

なるほど、やはりそうですよね。。。Accessを勉強し始めた頃、将来データ量が増えすぎることを恐れて、カテゴリのちがうDBをそれぞれに分けて作ってしまったんですが、それがそもそもの間違いだったんですね。
統合するとシステム全体を見直さないといけないので、時間がかかりますがコツコツやってみます。

いつも本当に勉強になります。ありがとうございます!