| SQL 「NOT」を使い条件以外のレコードを抽出する | ||||
SELECT フィールド名 FROM テーブル名 WHERE NOT 条件式 「NOT」は条件式の論理否定です。 「条件式 以外の」、「条件式 ではない」と言われます。 条件式が「True (真)」の時は「False (偽)」のデータを返し、「False (偽)」の時は「True (真)」のデータを返します。 例1: SQL = "SELECT 学生ID FROM 学生名簿 WHERE NOT 体重<=80 " この場合、体重が80を超える学生IDを抽出します。 例2: SQL = "SELECT 学生ID FROM 学生名簿 WHERE NOT 名前 LIKE '田' " この場合、名前に「田」の文字が含まれない学生IDを抽出します。
サンプルソフト [実行時の画面] 身長を入力し「NOT 抽出」ボタンをクリックすると、学生名簿テーブルから、 入力された身長以下でないレコードを表示します。 SQL = "SELECT 学生ID,身長 FROM 学生名簿 WHERE NOT 身長<=" & Me!テキスト2 は SQL = "SELECT 学生ID,身長 FROM 学生名簿 WHERE 身長>" & Me!テキスト2 と同じ結果になります。 ![]() [学生名簿 テーブル] 学生ID 体重 身長 10 55.2 168.6 11 68.5 173.1 13 65.3 182.4 16 89.6 178.3 ![]() [コード] Option Compare Database Private Sub コマンド8_Click() Dim SQL As String Dim rs As Recordset If IsNull(Me!テキスト2) Then MsgBox "抽出する身長を入力してください。" Me!テキスト2.SetFocus Exit Sub End If Me!テキスト1 = Null SQL = "SELECT 学生ID,身長 FROM 学生名簿 WHERE NOT 身長<=" & Me!テキスト2 Set rs = CurrentDb.OpenRecordset(SQL) Do Until rs.EOF Me!テキスト1 = Me!テキスト1 & rs![学生ID] & ": " & rs![身長] & vbCrLf rs.MoveNext Loop Set rs = Nothing End Sub
ダウンロード |
||||
Copyright(C) 2007-2008 FeedSoft