Accessでお仕事 結合(パソコン便利ツール集)

テーブルの結合
共通キーを持つ複数のテーブルの処理

 ここでは、共通のキーを持つ、複数のファイルを結合する方法を取り上げます。

 例えば、部品表の構成ファイル(品番の親子関係)に、品目ファイル(品目の属性情報)を付けて、一が見て分かりやすくする場合などです。

 このホームページでは、先に、テーブルの正規化で分割したテーブルを、再び結合してみましょう。(^^ゞ
 「受注テーブル」と「得意先」テーブルは、共通の「得意先ID」を持っています。この共通キーを使って、結合します。


Accessの選択クエリの使い方

 クエリーのオブジェクトで、新規作成として、「デザインビュー」を表示します。
注:

クエリのビューには、デザイン ビュー、データシート ビュー、SQL ビューの 3 種類があります。

  1. ツールバーの (ビュー) の右端にある下向き矢印をクリックします。
  2. 表示されたリストから、目的のビューをクリックします。


 対象とする複数のテーブルを、次々と「追加」します。

 結合線をマウスの右クリックして表示されるメニューで、「結合プロパティ」を表示させて、「(一方の)全レコードと、(他方の)同じ結合フィールドのレコードだけを含める」とするを指定します。

 結合プロパティの、1〜3を選択した場合、それぞれのSQLは、以下のようになっています。
1. FROM 得意先 INNER JOIN 受注 ON 得意先.ID = 受注.得意先_ID
2. FROM 得意先 LEFT JOIN 受注 ON 得意先.ID = 受注.得意先_ID
3. FROM 得意先 RIGHT JOIN 受注 ON 得意先.ID = 受注.得意先_ID
左右が逆になっています (^_^;) が、原則は下記です。
FROM すべてを含めたい側 LEFT JOIN 相手側 ON キー項目

 結合後に表示したい項目を、上の欄でダブルクリックすると、下段に入ります。結合前の全項目を、下段に移したいときは、一番上の「*」をダブルクリックします。上の例では、「受注.*」となっている部分です。

 後は、クエリの (実行) を押すだけです。後で繰り返し使うために、「受注+得意先」と名前を付けて、クエリーを保存しておきます。
 ここで重要なことは、クエリーとして保存されるのは、条件式だけで、結果のデータシートそのものが保存されるわけではないので、ファイル容量を消費しません。




ユニオン クエリの例

 結合は、テーブルだけでなく、クエリーも使えます。
 上で作った、「受注+得意先」と、先に作った「合計金額」を結合してみましょう。
SELECT 受注+得意先.*, 合計金額.金額2
FROM 受注+得意先 LEFT JOIN 合計金額 ON 受注+得意先.受注コード = 合計金額.受注コード;


Excel では VLOOKUP を使って結合

 Excel では、LOOKUP関数の中の、VLOOKUP を使うのが普通でしょう。VLOOKUPを使うときの注意は、検索範囲のデータを、前もって、検索のキーを一番左の列に持っていって、順に並べておく必要が有ることです。



VLOOKUPの使い方:

 下の例の式
 =VLOOKUP(I2,得意先!$A$2:$G$52,2,FALSE)
 は、セル I2 の値を、シート 「得意先」 の 範囲 $A$2:$G$52 で検索して、検索範囲の左から2列目の値を持ってきます。もし、検索範囲に無い場合は、エラー値「#NA」になります。この計算式を、行方向にコピーするのですが、コピーしたときに検索範囲が変らないように、範囲 $A$2:$G$52 と絶対参照にしています。

 レコード件数が多いと、上記の検索式だけでも、ファイル容量が大きくなり、Excel の操作も重くなります。


このページのトップに戻る↑ 次の項目を見る↓ Accessでお仕事 目次に戻る

ホームページのトップに戻る