Access VBA: LEFT JOIN で2つのテーブルを結合するクエリを作成

LEFT JOIN は左外部結合といわれ、結合する左側のテーブルを優先しレコードを表示します。

左側のテーブルの全レコードが表示され、右側のテーブルは共通するレコードのみ取り出されます。

構文:
SELECT 取得するフィールド名 FROM 結合するテーブル1 LEFT JOIN 結合するテーブル2 ON 結合するフィールド名1 = 結合するフィールド名2



BackHome BackTips Backメニュー

製品マスター
製品マスターテーブル

入庫テーブル
製品マスターを優先し、このテーブルと「製品ID」フィールドで結合します。
入庫テーブル

実行Accessフォーム
左外部結合フォーム
作成されたクエリの実行
製品マスター優先で製品マスターの全レコードと、共通する入庫テーブルのみが取り出されています。
共通していない製品ID「7」は表示されていません。
LEFT JOINフォーム

作成されたクエリをデザイン画面でみるとこうなります。
LEFT JOINクエリデザイン画面

■ Access VBA 実行コード

Option Compare Database
Option Explicit

Private Sub コマンド0_Click()
    Dim Qdf As QueryDef
    Dim SQL As String
    SQL = "SELECT M_製品マスター_2009年度.製品ID,製品コード, 製品名, 入庫日, 入庫数 " & _
        "FROM M_製品マスター_2009年度 LEFT JOIN T_入庫 ON M_製品マスター_2009年度.製品ID = T_入庫.製品ID;"
    Set Qdf = CurrentDb.CreateQueryDef("Q_入庫_LEFT_JOIN", SQL)
    Set Qdf = Nothing

    DoCmd.OpenQuery "Q_入庫_LEFT_JOIN"
End Sub


BackHome BackTips Backメニュー

Copyright(C) FeedSoft