スポンサーリンク

2007-07-16

Tips34 - SQL文 「NOT」と「IN」を使い複数の指定値以外のレコードを抽出する

dim SQL as String
Dim rs As RecordsetSQL = "SELECT フィールド名 FROM テーブル名 WHERE フィールド名 NOT IN(値1 , 値2 , ・・・・・) "
Set rs = CurrentDb.OpenRecordset(SQL)
「NOT」と「IN」を組み合わせると「値1 と 値2 と ・・・・ 以外の」データを返します。

例: SQL = "SELECT 学生ID FROM 学生名簿 WHERE 出身 NOT IN ( '愛知' , '東京' , '大阪' ) "
この場合、出身が 愛知 と 東京 と 大阪 以外の学生IDを抽出します。
これをANDに書き換えると
SQL = "SELECT 学生ID FROM 学生名簿 WHERE 出身 <> '愛知' AND 出身 <> '東京' AND 出身 <> '大阪' "
になります。