概要
| この記事の結論 Accessのワイルドカードは、Like演算子と組み合わせて任意の文字を表す記号です。通常のACCDBで使うANSI-89形式なら、Like “*ノート*” でノートを含む文字列を抽出できます。正規表現と同じ構文ではありません。 |
この記事でわかること
- 前方・後方・部分一致を使い分ける
- 1文字と文字集合を指定する
- 記号そのものを検索する
- ANSI-89とANSI-92を混ぜない
この記事の主な内容
- Likeとワイルドカードで文字の一部を検索する
- 前方・後方・部分一致を使い分ける
- 1文字と文字集合を指定する
- 記号そのものを検索する
- ANSI-89とANSI-92を混ぜない
- Nullと検索結果の検証を忘れない
- よくある質問
想定読了時間:約9分
1 Likeとワイルドカードで文字の一部を検索する
Accessのワイルドカードは、Like演算子と組み合わせて任意の文字を表す記号です。
通常のACCDBで使うANSI-89形式なら、Like “*ノート*” でノートを含む文字列を抽出できます。
正規表現と同じ構文ではありません。
データベースがANSI-92に設定されている場合は%や_など別の記号を使います。
動かないときは式を書き換える前に設定を確認しましょう。

2 前方・後方・部分一致を使い分ける
Like “ノート*” はノートで始まる文字列、Like “*ノート” はノートで終わる文字列、Like “*ノート*” は途中を含む検索です。*は0文字以上なので、どれもノートだけの文字列に一致します。
大量データで先頭に*を付ける検索は、前方一致より負荷が大きくなる場合があります。
コードの先頭が分かっているなら前方一致にするなど、必要以上に広い条件を避けます。
設定例と確認点
| 条件 | 一致例 |
|---|---|
| Like “ノート*” | ノート/ノート大判 |
| Like “*ノート” | ノート/学習ノート |
| Like “*ノート*” | ノート/学習ノート大判 |

3 1文字と文字集合を指定する
?は任意の1文字、#は任意の数字1文字です。
[ABC]はA・B・Cのいずれか、[A-Z]は範囲、[!A]はA以外の1文字を表します。
範囲の評価はデータベースの並べ替え規則などの影響も受けるため、実データで確認してください。

設定例と確認点
| 条件 | 意味 | 例 |
|---|---|---|
| Like “A?” | Aと1文字 | AB、A1 |
| Like “A#” | Aと数字1文字 | A1、A9 |
| Like “[ABC]*” | 先頭が指定文字 | Apple、Book |
| Like “[!A]*” | 先頭がA以外 | Book |
![文字の集合と範囲について、[ABC]、[A-Z]、[!A]の関係を示す図](https://access-manual.jp/wp-content/uploads/2026/09/125_図04-1024x576.png)
4 記号そのものを検索する
文字列に含まれる*や?を記号として探す場合、そのままではワイルドカードとして評価されます。
ANSI-89では[*]や[?]のように角括弧で囲む方法を使います。
商品名に*を含む行なら Like “*[*]*”、?を含む行なら Like “*[?]*” です。
利用者が入力した検索語に記号が含まれる場合も、文字どおりに探すか記号として使わせるかを決めます。
![記号自体を検索について、[*]、[?]、方針の関係を示す図](https://access-manual.jp/wp-content/uploads/2026/09/125_図05-1024x576.png)
5 ANSI-89とANSI-92を混ぜない
Accessの設定や接続方法によって、使用するワイルドカードの体系が異なります。
*が文字列、?が1文字を表す例はANSI-89の説明です。ANSI-92ではそれぞれ%と_が基本になります。
角括弧内の否定なども違いがあります。
ANSI-89の[!A]とANSI-92の[^A]を混在させないようにし、他のDB向けSQLを貼り付ける際は文法を確認します。
設定例と確認点
| 用途 | ANSI-89 | ANSI-92 |
|---|---|---|
| 任意の文字列 | * | % |
| 任意の1文字 | ? | _ |
| 数字1文字 | # | [0-9] |
| 集合の否定 | [!ABC] | [^ABC] |

既存Accessへの影響を判断できない場合
本記事の手順をコピーしたファイルで試しても解決しない場合や、既存データ・他の画面への影響を判断できない場合は、お気軽にご相談ください。対象ファイル、操作手順、期待する結果を整理すると、調査や改修の範囲を相談しやすくなります。
6 Nullと検索結果の検証を忘れない
Not Like “*試作*” は試作を含まない文字列を選びますが、Nullの行は通常含みません。
未入力も含めるなら Not Like “*試作*” Or Is Null のように明示します。
完全一致・前方一致・部分一致で想定する例を3件ずつ用意し、記号入り、空文字、Nullも試します。
大文字小文字の区別が必須なら、Likeの通常の照合規則だけで保証できるかを確認し、別の比較方法も検討してください。

7 よくある質問
ANSI設定によります。通常のACCDBのANSI-89なら*、ANSI-92なら%です。
ANSI-89ならLike “*[*]*”のように書きます。
NullはNot Likeだけでは含まれません。必要ならOr Is Nullを追加します。
まとめ
完全一致・前方一致・部分一致で想定する例を3件ずつ用意し、記号入り、空文字、Nullも試します。
大文字小文字の区別が必須なら、Likeの通常の照合規則だけで保証できるかを確認し、別の比較方法も検討してください。
本記事の手順をコピーしたファイルで試しても解決しない場合や、既存データ・他の画面への影響を判断できない場合は、お気軽にご相談ください。対象ファイル、操作手順、期待する結果を整理すると、調査や改修の範囲を相談しやすくなります。
参考情報
Microsoft公式資料を参照しています。サンプルは説明用の架空データです。Windows版Accessの実機検証は未実施のため、適用前に対象環境のコピーで結果を確認してください。
Microsoft:ワイルドカード参照
https://support.microsoft.com/en-us/access/access-wildcard-character-reference
Microsoft:Like演算子
https://learn.microsoft.com/en-us/office/vba/access/concepts/structured-query-language/like-operator-microsoft-access-sql