Home > 即効テクニック > AccessVBA > データベース・データ保護 > テーブルの結合 左外部結合

即効テクニック

データベース・データ保護

テーブルの結合 左外部結合

(Access 97)
SQLを用いて2つのテーブルを結合します。
結合方法は片方のテーブルの全レコードに対して合致するもう一方のテーブルのレコードを反映したもので、左外部結合と呼ばれるものです。

●詳細●
ここでは授業「統計力学1」に主席した学生が「量子力学1」に出席したかどうかを表示させます。

(テーブル)
「量子力学1」
 学生番号   出席者名
  0002    田中 和明
  0003    平野 彩子
  0004    葛城 孝史
  0006    新田 哲也
  0007    山本 雅治
  0008    内野 義昭
  0010    稲垣 友子

「統計力学1」
 学生番号   出席者名
  0001    森上 偉久馬
  0002    田中 和明
  0004    葛城 孝史
  0006    新田 哲也
  0008    内野 義昭
  0003    平野 彩子
  0009    青木 俊之

●サンプルプログラム●
Private Sub SQL_左外部結合()
  Dim cn As New ADODB.Connection
 Dim cmd As ADODB.Command
 Dim cat As New ADOX.Catalog
 Dim strSQL As String
 
 Set cn = New ADODB.Connection
 cn.ConnectionString = _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=D:\NorthWIND.MDB"
 cn.Open
 cat.ActiveConnection = cn
 
 '左外部結合
 strSQL = "SELECT 統計力学1.学生番号, 統計力学1.出席者名, 量子力学1 _
 	.出席者名 " & "FROM 統計力学1 LEFT JOIN 量子力学1 ON 統計力学1 _
 	.学生番号 = 量子力学1.学生番号;"

 Set cmd = New ADODB.Command
 cmd.ActiveConnection = cn
 cmd.CommandText = strSQL
 cat.Views.Append "左外部結合クエリ", cmd
 cn.Close
 Set cmd = Nothing
 Set cn = Nothing
 Set cat = Nothing
End Sub

●動作確認●
新たにクエリー「左外部結合クエリ」が以下のように表示ます。

 学生番号  統計力学1.出席者名   量子力学1.出席者名
  0001    森上 偉久馬
  0002    田中 和明        田中 和明
  0004    葛城 孝史        葛城 孝史
  0006    新田 哲也        新田 哲也
  0008    内野 義昭        内野 義昭
  0003    平野 彩子        平野 彩子
  0009    青木 俊之