今回はAccessのクエリについて(2)です。クエリを作成するデザインビューの画面に抽出条件という項目があります。
この抽出条件の部分に抽出したい条件を入力することで、指定した条件を満たした内容を抽出することができます。
今回は抽出条件の文字列に関する使い方について、抽出条件に文字列を使う場合に必ず知っておいた方が良いワイルドカード文字というものについてご紹介します。
はじめに
例で使うための商品テーブルを用意しました。(図1)。さらっと見ておいてください。

図1:商品テーブル
フィールド | 型 |
ID(主キー) | オートナンバー型 |
商品名 | 短いテキスト |
価格 | 数値型 |
在庫数 | 数値型 |
製造日 | 日付/時刻型 |
製造場所 | 短いテキスト |
Accessやテーブルは何?という方は過去にテーブルについての記事を書きましたので、よければご覧ください。

また、抽出条件の基本的な使い方(AndやOr等)も以前に記事を書きましたので、貼っておきます。

文字列に関する抽出条件
指定した文字列の抽出
例1:製造場所が愛知県名古屋市である商品を抽出する
例のように「愛知県名古屋市」といった文字列を抽出したいとは、抽出条件の部分に次のように入力します。
文字列を抽出条件に入力するときは、””(ダブルクォーテーション”)で文字列を囲います。囲い忘れても自動で補完してくれますが、少し複雑な条件を入力したときに、意図しない囲いが起こる可能性もありますので、普段から囲う癖をつけた方がいいと思います。
特定の文字列から始まる
愛知県で始まるのように特定の文字列で始まるものを抽出したいときは次のように入力します。
Likeは特定のパターンに一致するデータを検索するときに使用します。今回は愛知県で始まるデータを抽出するということなので、はじめに”愛知県”と記入します。次の*(アスタリスク)はワイルドカード文字と呼ばれるものの1種で、任意の文字列を意味します。(ワイルドカード文字についてはこの後、簡単にご紹介します。)
今回の例の場合、愛知県という文字列の後に*(アスタリスク)があるので、愛知県のあとはどんな文字列が続いてもいいということになります。(アスタリスクはそのあとに続く文字がなくても大丈夫ので、愛知県のみも検索の対象となります。)
このワイルドカード文字というものを応用することで、いろいろな文字列の検索が可能になります。
例えば、愛知県の市だけを抽出したい場合、抽出条件に記載する内容は次のようになります。
ワイルドカード文字
ワイルドカード文字は次のようなものがあります。これらを応用することでより細かな文字列の抽出が可能になります。
*(アスタリスク)
意味:任意の文字列(文字列がなくてもよい)
例)tom*
○ tom, tom’s blog tomtom
× ton, too, abc
?(クエスチョンマーク) または _(アンダーバー)
意味:任意の一文字
例) tom?
○ toms, tom5
× tom’s blog, tom51
#(シャープ)
意味:任意の半角数字1文字
例) tom##
○ tom51, tom11
× toms, toms5
[](角括弧)
意味:括弧内の文字1文字
例)[tT]om
○ tom, Tom
× aom, tam
[tT]というのは、tまたはTのいずれかということになります。
[!](角括弧とクエスチョンマーク)
意味:括弧内以外の1文字
例)[!aA][!bB]*
○ tt, oo, mmm, 123
× ab, aB, mb, 123, b
[!aA]というのは、aまたはA以外の1文字ということになります。
ハイフンを使うことで文字列の範囲を指定することができます。例えば、小文字のアルファベット1文字というときは[a-z]、大文字のアルファベット1文字というときは[A-Z]のように記述することもできます。
任意の英数字
[a-zA-Z0-9]
おわりに
今回は抽出条件の文字列に関する使い方について、そして、ワイルドカード文字について説明させていただきました。ワイルドカード文字を活用することで、抽出したい文字列に関する細かい設定が可能になります。以前にAndやOrの使い方についての記事も書いているので、よければご覧ください。

コメント