AccessのVBAでSQLのANDを使い、複数条件と一致するレコードを抽出する|フォーム実行例

ANDは2つの条件式の論理積

SELECT フィールド名 FROM テーブル名 WHERE 条件式1 AND 条件式2
「AND」は2つの条件式の論理積です。
「A と B」、「A かつ B」、「A および B」などと言われます。
条件式1 と 条件式2 の両方が「True (真)」のデータになります。

例: SQL = "SELECT 学生ID FROM 学生名簿 WHERE 体重>=60 AND 身長<=165 " この場合、体重が60以上で身長が165以上の学生IDを抽出します。 さらに 体重>=60 AND 身長<=165 AND 血液型='A'
のようにさらに追加することもできます。



BackHome BackSQL Tips

サンプルソフト
[実行時の画面]
身長、体重を入力し「抽出」ボタンをクリックすると、学生名簿テーブルから、入力された身長と体重を超えるレコードを表示します。
学生 体格抽出

[学生名簿 テーブル]
学生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
    If IsNull(Me!テキスト3) Then
        MsgBox "抽出する体重を入力してください。"
        Me!テキスト3.SetFocus
        Exit Sub
    End If
    Me!テキスト1 = Null
    SQL = "SELECT 学生ID,身長,体重 FROM 学生名簿 WHERE 体重>=" & Me!テキスト3 & " AND 身長>=" & Me!テキスト2
    Set rs = CurrentDb.OpenRecordset(SQL)
    Do Until rs.EOF
        Me!テキスト1 = Me!テキスト1 & rs![学生ID] & ": " & rs![身長] & "  " & rs![体重] & vbCrLf
        rs.MoveNext
    Loop
    Set rs = Nothing
End Sub

サンプルソフトのダウンロード

BackHome BackSQL Tips

Copyright(C) FeedSoft