Microsoft Access Club >SQL入門講座 >このページ >次頁 < 前項  サイト内検索
 

レコードの抽出 - WHERE句 : SQL入門講座



テーブルレコードをある特定の条件で抽出することができます。この場合、WHERE句で抽出条件を指定します。例えば、選択クエリでは、以下のように記述します。

  • SELECT テーブル名 FROM フィールド名 WHERE句 条件句

これは、選択クエリの基本文、SELECT 〜 FROM に続いて WHERE句を記述するだけです。 あと、アクションクエリで利用が可能です。

サンプルテーブル(出張管理)は以下のものを予定しています。

ID社員名出発日帰社日目的地旅費額
2 橘 修平 2004/07/04 2004/07/05 京都支店 \28,400
4 柴田 喜一 2004/07/17 2004/07/21 東京支店 \78,310
1 正道 良一 2004/07/02 2004/07/05 広島支店 \56,720
3 田中 邦子 2004/07/10 2004/07/15 福井支店、石川支店 \98,200

条件句に用いる比較演算子

比較演算子の種類は、以下のようなものがあります。

記号 意味
= 等しい
<> 等しくない
>= より小さいか等しい
> より小さい
<= より大きい
< より大きいか等しい
AND かつ
OR または

サンプル構文

サンプルテーブルを用いて、「旅費額」フィールドの値が50,000円以上のレコードを抽出します。

  • SELECT * FROM 出張管理 WHERE 旅費額 >= 50000;

「目的地」フィールドの値が東京支店であるレコードを抽出します。

  • SELECT * FROM 出張管理 WHERE 目的地 = "東京支店";

「出発日」が7月10日以降のレコードを抽出します。

  • SELECT * FROM 出張管理 WHERE 出発日 >= #2004/07/10#;
留意点
  1. 抽出条件値のデータ型に注意を払う必要があります。
  2. 旅費額フィールドは通貨型なので、50000と記述するだけでOKです。
  3. 目的地フィールドはテキスト型なので、抽出条件値をダブルクォーション(")で囲む必要があります。
  4. 日付/時刻型フィールドなら、#(シャープ)で囲みます。
  5. WHERE句でミスが起こるのはこの部分が多いので、注意が必要です。
DAOを用いた事例

DAOを用いてQ_sampleクエリを作成しこれを開きます。

Sub MySQLSelect()

On Error GoTo エラー

    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim mySQL As String
    
    Set db = CurrentDb()
    
    mySQL = "SELECT * FROM 出張管理 WHERE 旅費額 >= 50000;" ' SQLを記述します。
        
    Set qdf = db.CreateQueryDef("Q_sample", mySQL) ' Q_sampleを作成します。
    
    DoCmd.OpenQuery qdf.Name ' クエリを開きます。
                
    db.Close: Set db = Nothing

    Exit Sub
エラー:
    
    If Err.Number = 3012 Then
        db.QueryDefs.Delete "Q_sample" ' Q_sampleを削除します。
        Resume
    Else
        MsgBox Err.Number & " : " & Err.Description
    End If
    
End Sub
留意点
  1. VBA内でSQLを用いる場合は、前後をダブルクォーション(")で囲みます。
  2. 同名のクエリが既に存在しているとエラーになるので、エラーコード3012が返されたら該当のクエリを削除します。
結果

下記のようにクエリが開きます。

クエリで作成

このSQLをクエリで作成すると、下記のようになります。

2004/08/13

ページの先頭へ 前ページへ戻る

 


レコードの抽出 - WHERE句 : SQL入門講座


-Microsoft Access Club-

cPanel と PLESKをインストールした専用・共有レンタルサーバーを銀行振込でご提供中。契約書は一切不要です。
cPanel や PLESKをインストールした専用・共有レンタルサーバー
まずは1ヶ月から...。
日本国内の銀行振込がOK、契約書は不要です。