即効テクニック |
●概要● WHERE句に他のSELECTステートメントを埋め込んで、その結果を検索条件に使用します。 サンプルでは、副問合せのSELECTステートメントで[給与テーブル]からMAX関数を使用して一番高い「給与」を検索し、その「給与」を条件として、「給与」が一致する「社員コード」、「名前」、「給与」をメッセージダイアログに表示します。●サンプル●
'他のSELECTステートメントの結果を条件に指定する(副問合せ) Public Sub Sample() Dim myDB As Database Dim myRS As DAO.Recordset Dim mySQL As String 'SQLステートメントを定義する mySQL = "SELECT A.社員コード,名前,給与 " & _ "FROM 社員テーブル A,給与テーブル B " & _ "WHERE A.社員コード=B.社員コード AND " & _ "給与 IN (SELECT MAX(給与) FROM 給与テーブル);" 'カレントデータベースを変数に代入する Set myDB = CurrentDb 'SQLステートメントを実行してレコードセットを開く Set myRS = myDB.OpenRecordset(mySQL, dbOpenDynaset) 'レコードセットの内容を表示する MsgBox "*** 一番給与の高い社員 ***" & vbCrLf & _ myRS(0) & " " & myRS(1) & " 給与:" & myRS(2) 'レコードセットを閉じる myRS.Close End Sub