PR

Accessで作る購買伝票について その7 クエリ作成(結合)

クエリ

前回は、データの抽出方法としてクエリにおける「選択」と「射影」の設定方法を紹介しました。 今回はクエリによる結合操作について見ていきましょう。

スポンサーリンク

結合操作について

まず、これまでにも何回も使ってきたサンプルデータ及びテーブルについて改めて確認します。
初めに、T_購買伝票テーブルとT_購買伝票内訳テーブルの結合操作について説明します。

T_購買伝票

管理番号 購買担当者 発注先名称 発注日
 1  1  1  2019/10/29
 2  2  1  2019/10/30
 3  1  2  2019/10/30
 4  3  1  2019/10/31
 5  2  1  2019/10/31

T_購買伝票内訳

購買内訳ID 管理番号 購買品目 購買数量
 1  1  1  100
 2  1  2  80

 

ここで、Accessで作る購買伝票について その4 テーブル構成 で紹介してきたように、これら二つのテーブルは「管理番号」フィールドでリレーションシップが設定されています。
前回の Accessで作る購買伝票について その6 クエリ作成① で作成したクエリをベースにT_購買伝票内訳テーブルを追加していきましょう。

図1 結合クエリ作成手順①

まず、前回までに作成した「クエリ1」を開きます。
次に、レコードの抽出条件をリセットするために、「発注日」フィールドの【抽出条件】の値は、削除します。
そして、「デザイン」タブの中にある「テーブルの追加」アイコンをクリックします。

図2 結合クエリ作成手順②

テーブルの表示画面で、追加対象の「T_購買伝票内訳」テーブルを選択し、「追加」→「閉じる」とクリックします。
すでに、これらテーブル間ではリレーションシップの設定をしているため、図2に示すように、「管理番号」フィールドで1対無限のリレーションが設定されます。
そして、T_購買伝票内訳テーブルの「購買品目」及び「購買数量」フィールドをドラッグアンドドロップにより画面下側の【フィールド】項目に追加します。
この状態で、画面左上の表示アイコンをクリックすると、図3に示すのリストが表示されます。

図3 結合クエリ作成手順③

これで、T_購買伝票テーブルとT_購買伝票内訳テーブルを結合して出力することができました。
しかしながら、「購買担当者」、「発注先名称」及び「購買品目」は数字が示されているだけで、何を意味しているかが分からない状態です。したがって、これらについてもどのような値が保存されているかを確認するために、マスタテーブルとの結合操作を見ていきましょう。

図4 結合クエリ作成手順④

まず、先ほどと同様に「テーブルの追加」アイコンをクリックし、T_担当者マスタ、T_取引先マスタ及びT_商品マスタテーブルを追加します。
T_購買伝票テーブルはT_担当者マスタと「購買担当者」フィールド及び「担当者ID」フィールドでリンクをかけます。この際、どちらかのフィールドをもう一方のフィールドに対して、ドラッグアンドドロップすることで図に示すようなリンクをかけることができます。
「発注者名称」フィールドも「取引先ID」フィールドとリンクをかけます。
※ 各マスタテーブルはのIDとT_購買伝票の各フィールドの数値が一致することになります。

同様に、T_購買伝票内訳テーブルの「購買品目」とT_商品マスタテーブルの「商品ID」でリンクを貼ります。詳しくは図4を見てみましょう。

次に、画面下部の【フィールド】及び【テーブル】には、各テーブルから出力したいフィールドを設定します。
図の場合、T_購買伝票テーブルにおける「購買担当者」フィールドはT_担当者マスタとリンクを貼るために用いられるもので、そのリンク先テーブルであるT_担当者マスタテーブルの「担当者氏名」フィールド内のデータが必要な情報となるため、【フィールド】欄には担当者氏名と、【テーブル】にはT_担当者マスタと入力します。
具体的には図5を参照し、その他のフィールド設定もしてみてください。

図5 フィールド及びテーブル設定内容

そして、設定が完了した後、改めて画面左上の「表示」アイコンをクリックすると図6のようなリストが表示されます。

図6 テーブル結合結果

いかがでしょうか?実は、図6に示すリストはこれまでサンプルデータとして用いてきた一覧表と同様のものとなっています。
これまでに、データの正規化によりテーブルの分割をしてきましたが、実際の結合操作を上述のように行うことで、良く見かけるリストの形式に整形することができるのです。
このようにして、データの整合性を担保しつつ、データ処理を行うことで的確なデータ管理をしながら業務効率の改善が図れるようになるわけです。

まとめ

今回は正規化により分割したテーブルの結合をクエリで行いました。結合操作は内結合と外結合の2種類(今回の場合は内結合)に分けることができますが、それはまた別の機会に紹介したいと思います。まずは、結合操作の一般的な設定手順をご理解いただけたと思いますので、次回からは、クエリ内での演算処理について紹介したいと思います。

スポンサーリンク

Kindle Unlimitedにサインアップして無料体験に登録する
Kindle Unlimitedに登録すると、人気のシリーズ、ベストセラー、名作などに好きなだけアクセスして、シームレスなデジタル読書体験を実現できます。

コメント

タイトルとURLをコピーしました