スポンサーリンク

2007-07-15

Tips33 - SQL文 「IN」を使い複数の指定値と一致するレコードを抽出する

dim SQL as String
Dim rs As Recordset
SQL = "SELECT フィールド名 FROM テーブル名 WHERE フィールド名 IN(値1 , 値2 , ・・・・・) "
Set rs = CurrentDb.OpenRecordset(SQL)
「IN」は「OR」と同じ使い方ができますが、構文が分かり易くなります。
「値1 か 値2 か ・・・・ のどれかに合う」データを返します。

例: SQL = "SELECT 学生ID FROM 学生名簿 WHERE 出身 IN ( '香川' , '島根' , '福島' ) "
この場合、出身が 香川 か 島根 か 福島 の学生IDを抽出します。
これをORに書き換えるとSQL = "SELECT 学生ID FROM 学生名簿 WHERE 出身 = '香川' OR 出身 = '島根' OR 出身 = '福島' "になります。
IN演算子を使うことで簡潔になっていることがよく分かります。