概要
| この記事の結論 Accessクエリの抽出条件は、デザインビューの「抽出条件」行へ値や比較式を入力します。文字列は引用符、数値は数値、日付は日付として扱い、未入力は Is Null で判定します。以下の29パターンは通常のACCDBとANSI-89のワイルドカードを前提にした例です。 |
この記事でわかること
- 数値の一致と大小を指定する
- 未入力と文字列を抽出する
- Yes/Noと日付とパラメーターを使う
- 複数条件を組み合わせる
この記事の主な内容
- 条件はデータ型と入力場所に合わせて書く
- 数値の一致と大小を指定する
- 未入力と文字列を抽出する
- Yes/Noと日付とパラメーターを使う
- 複数条件を組み合わせる
- 条件を一つずつ検証して保存する
- よくある質問
想定読了時間:約8分~12分
1 条件はデータ型と入力場所に合わせて書く
Accessクエリの抽出条件は、デザインビューの「抽出条件」行へ値や比較式を入力します。文字列は引用符、数値は数値、日付は日付として扱い、未入力は Is Null で判定します。以下の29パターンは通常のACCDBとANSI-89のワイルドカードを前提にした例です。
SQLビューではWHERE句にフィールド名も書くため、条件欄へ貼る式とは形が異なります。まず入力場所を確認してください。

2 数値の一致と大小を指定する
等しい・より大きい・以上は、それぞれ =、>、>= を使います。Betweenは両端を含むため、10~20なら10と20も対象です。対象のフィールドが数値型であることを確認してください。
文字列のコードを数値へ置き換えると先頭ゼロの意味が失われます。数量と商品コードを同じ書き方で処理しないようにします。
設定例と確認点
| No | 対象列 | 条件式 | 意味 |
|---|---|---|---|
| 1 | 商品名 | “ノート” | 完全一致 |
| 2 | 商品名 | <>”ノート” | 一致しない(Nullは別) |
| 3 | 数量 | =10 | 10と等しい |
| 4 | 数量 | >10 | 10より大きい |
| 5 | 数量 | >=10 | 10以上 |
| 6 | 数量 | <10 | 10未満 |
| 7 | 数量 | <=10 | 10以下 |
| 8 | 数量 | Between 10 And 20 | 10以上20以下 |
| 9 | 数量 | Not Between 10 And 20 | 範囲外 |
| 10 | 数量 | In (1,3,5) | いずれかに一致 |
| 11 | 数量 | Not In (1,3,5) | 指定値以外 |

3 未入力と文字列を抽出する
Nullは値が不明・未入力である状態です。空文字やスペースとは別に扱います。<>、Not In、Not Likeなどの否定条件だけでは、Nullの行は通常含まれません。必要なら Or Is Null を追加します。
Likeのワイルドカードは正規表現とは異なる仕組みです。次の表はANSI-89形式で、ANSI-92設定のデータベースでは記号を読み替える必要があります。
設定例と確認点
| No | 対象列 | 条件式 | 意味 |
|---|---|---|---|
| 12 | 数量 | Is Null | 未入力 |
| 13 | 数量 | Is Not Null | 入力済み |
| 14 | 商品名 | “” | 空文字 |
| 15 | 商品名 | Is Null Or “” | Nullか空文字 |
| 16 | 商品名 | Like “ノート*” | 前方一致 |
| 17 | 商品名 | Like “*ノート” | 後方一致 |
| 18 | 商品名 | Like “*ノート*” | 部分一致 |
| 19 | 商品コード | Like “A?” | Aと任意1文字 |
| 20 | 商品コード | Like “A#” | Aと数字1文字 |
| 21 | 商品コード | Like “[ABC]*” | 先頭がA・B・C |
| 22 | 商品コード | Like “[A-Z]*” | 先頭が指定範囲 |
| 23 | 商品コード | Like “[!A]*” | 先頭がA以外 |
| 24 | 商品名 | Not Like “*試作*” | 試作を含まない |


4 Yes/Noと日付とパラメーターを使う
Yes/No型の条件にはTrueまたはFalseを使います。日付/時刻には時刻も保存されるため、今日の全件は今日0時以上、翌日0時未満で抽出します。今月も月初以上・翌月初未満なら月末の時刻を含められます。
角括弧で入力を求めるパラメーターには型を明示します。例29の最低数量を入力は長整数として定義すると、意図しない文字列入力を検出しやすくなります。
設定例と確認点
| No | 対象列 | 条件式 | 意味 |
|---|---|---|---|
| 25 | 有効 | True | Yesの行 |
| 26 | 有効 | False | Noの行 |
| 27 | 受注日時 | >=Date() And <Date()+1 | 今日の全時刻 |
| 28 | 受注日時 | >=DateSerial(Year(Date()),Month(Date()),1) And <DateSerial(Year(Date()),Month(Date())+1,1) | 今月 |
| 29 | 数量 | [最低数量を入力] | 入力パラメーターと等しい |

5 複数条件を組み合わせる
同じ条件行の別列はAND、別の「または」行はORとして扱われます。複雑な条件はSQLビューで括弧の位置を確認すると、どの条件をまとめて判定するかを見失いにくくなります。
例えば東京または大阪の顧客で有効な行だけなら、都市のORを括弧で囲み、有効のAND条件を組み合わせます。
サンプルコードと式
SELECT * FROM [M_顧客]
WHERE ([都市]=”東京” OR [都市]=”大阪”)
AND [有効]=True;

既存Accessへの影響を判断できない場合
本記事の手順をコピーしたファイルで試しても解決しない場合や、既存データ・他の画面への影響を判断できない場合は、お気軽にご相談ください。対象ファイル、操作手順、期待する結果を整理すると、調査や改修の範囲を相談しやすくなります。
6 条件を一つずつ検証して保存する
入力した式で出るはずの値、出ないはずの値、境界値、Nullを試します。前方一致と部分一致、以上と超過など、似た条件ほど対象IDを具体的に照合してください。
想定外のパラメーター入力は、フィールド名の誤字でも発生します。条件を保存した後は、残ったフィルターや元クエリの条件も含めて再表示し、安定して同じ意図の結果になることを確認します。

7 よくある質問
Nullは通常含まれません。必要ならOr Is Nullを加えます。
条件欄には比較式だけを入れます。WHEREを含むSQL全体はSQLビューへ入力します。
ANSI-89とANSI-92で記号が異なります。データベースの設定を確認します。
まとめと相談先
想定外のパラメーター入力は、フィールド名の誤字でも発生します。条件を保存した後は、残ったフィルターや元クエリの条件も含めて再表示し、安定して同じ意図の結果になることを確認します。
本記事の手順をコピーしたファイルで試しても解決しない場合や、既存データ・他の画面への影響を判断できない場合は、お気軽にご相談ください。対象ファイル、操作手順、期待する結果を整理すると、調査や改修の範囲を相談しやすくなります。
参考情報
Microsoft公式資料を参照しています。サンプルは説明用の架空データです。Windows版Accessの実機検証は未実施のため、適用前に対象環境のコピーで結果を確認してください。
Microsoft:抽出条件の例
https://support.microsoft.com/en-us/access/examples-of-query-criteria
Microsoft:ワイルドカード
https://support.microsoft.com/en-us/access/access-wildcard-character-reference
Microsoft:PARAMETERS
https://learn.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/parameters-declaration-microsoft-access-sql