このトピックでは、Access で用意されているワイルドカード文字についてのリファレンス情報および一部の使用方法に関する情報を説明します。
Access データベース内でワイルドカード文字を検索する方法の詳細については、「[検索と置換] ダイアログ ボックスを使用してデータを変更する」、「簡単な選択クエリを作成する」、および「データベースのデータを更新する」を参照してください。
この記事の内容
サポートされている文字セットについて
Access では、構造化照会言語 (SQL) の 2 つの規格である ANSI-89 と ANSI-92 がサポートされているため、2 つのワイルドカード文字セットがサポートされています。 通常、Access データベース (.mdb ファイルおよび .accdb ファイル) に対してクエリを実行したり検索と置換の操作を実行したりするときは、ANSI-89 ワイルドカードを使用します。 Access プロジェクト、つまり Microsoft SQL Server データベースに接続された Access ファイルに対してクエリを実行するときは、ANSI-92 ワイルドカードを使用します。 Access プロジェクトでは、SQL Server で使用される規格に合わせて ANSI-92 規格が使用されます。
ただし、Access のその規則には例外もあります。 次の表は、データの検索と置換に使用できるメソッドまたはツールと、各ツールで使用される既定の ANSI 規格についてまとめたものです。
検索用メソッドまたはツール |
検索対象となるファイルの種類 |
使用されるワイルドカード文字のセット |
[検索と置換] ダイアログ ボックス |
Access データベース (.mdb ファイルと .accdb ファイル) |
ANSI-89 |
[検索と置換] ダイアログ ボックス |
Access プロジェクト (.adp ファイルと .accdp ファイル) |
ANSI-92 |
選択クエリまたは更新クエリ |
Access データベース (.mdb ファイルと .accdb ファイル) |
ANSI-89 |
選択クエリまたは更新クエリ |
Access プロジェクト (.adp ファイルと .accdp ファイル) |
ANSI-92 |
[検索と置換] ダイアログ ボックス、選択クエリまたは更新クエリ |
ANSI-92 規格をサポートするように設定された Access データベース |
ANSI-92 |
データベースでサポートされている ANSI 規格を確認する
次の手順に従って、指定されたデータベースの ANSI 設定を確認し、必要に応じて変更します。
-
[ファイル]、[オプション] の順にクリックします。
[Access のオプション] ダイアログ ボックスが表示されます。
-
[オブジェクト デザイナ] をクリックし、[クエリ デザイン] セクションの [SQL サーバー互換構文 (ANSI 92)] で、次のいずれかの操作を行います。
-
[このデータベース] チェック ボックスをオンにして、開いているデータベースを ANSI-92 規格に変更します。
または
チェック ボックスをオフにして、開いているデータベースを ANSI-89 規格に設定します。
-
[新しいデータベースの標準] チェック ボックスをオンにして、Access の開いているインスタンスで作成された新しいデータベースをすべて ANSI-92 規格に設定します。
または
チェック ボックスをオフにして、新しいデータベースをすべて ANSI-89 規格に設定します。
-
-
[OK] をクリックします。
ANSI-89 ワイルドカード文字
[検索と置換] ダイアログ ボックスを使用して Access データベースまたは Access プロジェクト内のデータを検索し、必要に応じて置換する場合は、このワイルドカード文字のセットを使用します。 また、Access データベースに対して選択クエリと更新クエリを実行する場合もこれらのワイルドカード文字を使用しますが、Access プロジェクトに対して同クエリを実行する場合は使用しません。 選択クエリと更新クエリの使用方法の詳細については、「簡単な選択クエリを作成する」および「データベースのデータを更新する」を参照してください。
文字 |
説明 |
使用例 |
* |
任意の数の文字と一致します。 アスタリスク (*) は文字列のどの場所でも使用できます。 |
wh* では、white や why は検索されますが、awhile や watch は検索されません。 |
? |
任意の 1 つの英数字と一致します。 |
B?ll では、ball 、bell、bill が検索されます。 |
[ ] |
角かっこ内の任意の 1 文字と一致します。 |
B[ae]ll では、ball と bell は検索されますが、bill は検索されません。 |
! |
角かっこ内の文字以外と一致します。 |
b[!ae]ll では、bill と bull は検索されますが、ball や bell は検索されません。 |
- |
範囲内のいずれかの 1 文字と一致します。 この範囲は、Z から A ではなく A から Z と昇順で指定する必要があります。 |
b[a-c]d では、bad、bbd、bcd が検索されます。 |
# |
任意の 1 つの数字と一致します。 |
1#3 では、103、113、123 が検索されます。 |
ANSI-92 ワイルドカード文字
Access プロジェクト (.adp ファイル) に対して選択クエリや更新クエリを実行する場合、およびいずれかのクエリまたは [検索と置換] ダイアログ ボックスを使用して ANSI-92 規格を使用するように設定されたデータベースを検索する場合は、このワイルドカード文字のセットを使用します。
文字 |
説明 |
使用例 |
% |
任意の数の文字と一致します。 文字列の最初または最後の文字として使用することができます。 |
wh% では、what、white、why は検索されますが、awhile や watch は検索されません。 |
_ |
任意の 1 つの英数字と一致します。 |
B_ll では、ball 、bell、bill が検索されます。 |
[ ] |
角かっこ内の任意の 1 文字と一致します。 |
B[ae]ll では、ball と bell は検索されますが、bill は検索されません。 |
^ |
角かっこ内の文字以外と一致します。 |
b[^ae]ll では、bill と bull は検索されますが、ball や bell は検索されません。 |
- |
範囲内のいずれかの 1 文字と一致します。 この範囲は、Z から A ではなく A から Z と昇順で指定する必要があります。 |
b[a-c]d では、bad、bbd、bcd が検索されます。 |
注:
-
データ内にあるワイルドカード文字を検索するには、[#] のように検索対象の文字を角かっこ ([]) で囲みます。 アスタリスク (*)、疑問符 (?)、シャープ記号 (#)、開き角かっこ ([)、およびハイフン (-) を検索する場合は、この規則に従ってください。 感嘆符 (!) や閉じ角かっこ (]) を検索する場合は、角かっこを使用しないでください。 [検索と置換] ダイアログ ボックスを使用してこれらの文字を検索するには、[検索する文字列] ボックスに検索する文字を角かっこで囲まずに入力します。 クエリを使用して文字を検索する場合も同様です。 たとえば、構文 Like "*!*" では、データ内で感嘆符のある場所にかかわらず、感嘆符を含むすべてのレコードが返されます
[検索と置換] ダイアログ ボックスの使用方法については、「[検索と置換] ダイアログ ボックスを使用してデータを変更する」を参照してください。 選択クエリと更新クエリの使用方法については、「簡単な選択クエリを作成する」および「データベースのデータを更新する」を参照してください。
ハイフンおよびその他の文字を同時に検索する場合、[-#*] または [#*-] のように、角かっこ内でハイフンは先頭または最後に入力します。 ただし、開き角かっこ ([) の次に感嘆符 (!) がある場合、[!-] のように、ハイフンは感嘆符の次に入力します。
-
開き角かっこと閉じ角かっこの組み合わせ ([]) を検索するには、[[]] のように、開き角かっこと閉じ角かっこの両方を角かっこで囲む必要があります。 これは、Access では、開き角かっこと閉じ角かっこの組み合わせは長さ 0 の文字列として解釈されるためです。
ワイルドカードを使用して検索できるデータ型
テーブルをデザインする場合は、テーブルの各フィールドにデータ型を設定します。 たとえば、日付情報が含まれるフィールドには日付/時刻データ型を設定します。 次の表は、ワイルドカードを使用して検索できるデータ型についてまとめたものです。 場合によっては、[検索と置換] ダイアログ ボックスでワイルドカードを使用できても、クエリでは使用できないことや、またその反対もあります。
データ型 |
使用できる場所 |
テキスト型 |
[検索と置換] ダイアログ ボックス、クエリ |
メモ型 |
[検索と置換] ダイアログ ボックス、クエリ |
数値型 |
[検索と置換] ダイアログ ボックス、クエリ |
日付/時刻型 |
[検索と置換] ダイアログ ボックス、クエリ 注: ワイルドカードの使用方法は、地域の設定によって影響されることがあります。 詳細については、このセクションの最後にあるメモを参照してください。 |
通貨型 |
[検索と置換] ダイアログ ボックス、クエリ |
オートナンバー型 |
[検索と置換] ダイアログ ボックス、クエリ |
OLE オブジェクト型 |
なし |
Yes/No 型 |
クエリ、ただし不要です。 詳細については、このセクションの最後にあるメモを参照してください。 |
ハイパーリンク |
[検索と置換] ダイアログ ボックス、クエリ |
ルックアップ ウィザード |
ソース フィールドのデータ型に依存します。 |
注:
-
日付/時刻データ型フィールドに適用される書式によって日付の一部またはすべてがテキストで表示される場合、[検索と置換] ダイアログ ボックスでワイルドカードを使用して日付/時刻データ型フィールドを検索できます。 たとえば、*ar*-10-2007 などの文字列を使用して検索できますが、その場合は、January、February など、文字 ar が含まれている月が検索されます。 ただし、検索にはデータに適用された書式を使用する必要があるため、ダイアログ ボックスの [表示書式で検索する] チェック ボックスをオンにする必要があります。 このチェック ボックスの詳細については、「[検索と置換] ダイアログ ボックスを使用してデータを変更する」を参照してください。
-
表示書式と検索方法は、地域の設定で指定した日付と時刻によって影響されることがあります。 たとえば、日付は、07-Sept-1997 でなく 07-IX-1997 などのローマ数字で表示されることがあります。 一般に、検索にはテーブルに保存されている形式ではなく表示書式が使用されます。 つまり、ある年の 9 月のレコードをすべて検索するには、*-IX-2007 などの文字列を使用できます。
さらに、日付フィールドのテキストに á や ä などのダイアクリティカルなマークが含まれている場合は、それらのマークを検索文字列に含める必要があります。検索は失敗します。 ワイルドカードを使用して、ダイアクリティカル マークの存在を回避できます。 たとえば、 3-heinä-2007 などの日付が表示された場合は、 *-hein*-2007 などの文字列を使用して検索できます。
-
[ 検索と置換 ] ダイアログ ボックスを使用して [はい]/[いいえ] フィールドを検索すると、フィールドが表示され、ダイアログ ボックスはレコードを返しません。 クエリを使用して Yes/No フィールドを検索する場合はワイルドカードを使用できますが、はい/いいえフィールドは 2 つの値 (false の場合は 0、true の場合は -1) のみを返すので、ワイルドカードは検索に値を追加しません。 たとえば、 =-1 などの条件を使用すると 、"Like *1" と同じ結果が返されます。
-
OLE オブジェクト型フィールドは、検索できません。