PR

Accessクエリの抽出条件 テキスト型・数値型

クエリ

データベースでは、テーブルへ登録したデータの抽出処理をクエリを用いて行うことが一般的です。今回はテキスト型と数値型に着目をして、抽出条件の設定方法を紹介していきます。
なお、日付型については Accessにおける日付/時刻型・DateAdd関数による日付の加算減算・有効期限管理 で紹介していますので、そちらをご参照ください。

スポンサーリンク

サンプルデータについて

今回のサンプルデータは、氏名と年齢の組み合わせデータとしています。

表 サンプルデータ

ID 氏名 年齢
1 山田 一 19
2 鈴木 二郎 58
3 太平 三津子 46
4 佐藤 四之助 31
5 渡辺 五郎 76
6 三橋 六実 42
7 斉藤 七海 5
8 小野 八十吉 95

テーブルの作成で、「ID」、「氏名」及び「年齢」フィールドを作成し、表に示すデータを入力してください(今回作成したテーブルの名前は「サンプルテーブル」としています。)。
続いて、クエリデザインよりデータ処理するテーブルとして「サンプルテーブル」を追加してください。【 フィールド 】項目に、「ID」、「氏名」及び「年齢」フィールドを設定します。ここまでの操作により、図1に示すクエリが出来上がっていると思います。

図1 サンプルクエリの設定方法

なお、テーブルの作成、クエリの作成及びフィールドの設定方法については、以下の記事をご参照ください。

テキスト型のレコード抽出

さて、テキスト型のレコードを抽出していきましょう。まず、登録したデータの内、氏名が「渡辺 五郎」のレコードだけを抽出する方法を見てみましょう。この方法はクエリの【抽出条件】項目に「”渡辺 五郎”」と入力するだけで良いです。なお、文字列を表す場合にはダブルクオーテーションで対象の文字列を括ることになっています。

図2 クエリでのテキスト型抽出条件

図2に示すように条件を設定し、データシートビューで確認すると、氏名が「渡辺 五郎」であるレコードだけが表示されると思います。
このように、直接的に値を入力してレコードの抽出をすることができますが、例えば、「郎」の文字が入っている人のレコードを抽出する場合には、上述の方法では対応が困難になります。そこで、「ワイルドカード」を用いて、対象の文字列を含むレコードを抽出する方法を見ていきましょう。

ワイルドカードとは、全てのパターンにマッチする文字列のことで、任意の文字列が適用されるものです。この際、文字列の長さも重要な情報になります。
「*」: アスタリスクは、複数の文字列パターンにマッチするワイルドカードです。
「?」: クエスチョンマークは、1文字のパターンにマッチするワイルドカードです。

例えば、【抽出条件】項目に「”*郎”」と入力すると、自動で「Like “*郎”」となります。この条件では、最後の文字が「郎」となるデータを検索することになり、「鈴木 二郎」と「渡辺 五郎」のレコードが抽出されることになります。

図3 Like条件での抽出

同様に、【抽出条件】項目に「”三*”」と入力して、データ抽出を行うと、今度は「三橋 六実」のレコードが出力されます。さらに、「”*三*”」としてデータ抽出を行うと、「三橋 六実」に加えて、「太平 三津子」のレコードも抽出されます。つまり、「*」で文字列を括ると、当該文字列を含むレコード全てを抽出することができます。

図4 Like条件で検索文字列を含む全てのレコードを出力する方法

このようにして、テキスト型のデータ抽出には、「ワイルドカード」を活用することで、データ処理がスムーズに行えるようになります。

数値型のレコード抽出

さて、次は数値型のレコード抽出方法を見ていきましょう。数値型については等号、不等号を使うことで、効率的にレコード抽出を行うことができます。

「=」 & 比較する数字: 比較する数字と等しい値を含むレコードを抽出
「>」 & 比較する数字: 比較する数字より大きい値を含むレコードを抽出
「>=」 & 比較する数字: 比較する数字以上の値を含むレコードを抽出
「<」 & 比較する数字: 比較する数字より小さい値を含むレコードを抽出
「<=」 & 比較する数字: 比較する数字以下の値を含むレコードを抽出

ここで、それぞれの表現に注意してください。「比較する数字より大きい/小さい」場合は、抽出する値に、比較する数字は含まれません。例えば、「2より大きい整数」とすると、「3」以降の整数が抽出されます。一方で、「2以上の整数」とすると、「2」を含んでそれ以降の整数(3、4、5・・・)が抽出されます。サンプルデータでレコード抽出した例を図5に示します。

図5 各種不等号でのレコード抽出結果

数値型については、【抽出条件】項目に「Between A And B」(A、Bは数字)と入力すると、A~Bの範囲に該当するレコードを抽出します。これは、日付/時刻型でも紹介した方法と同様ですが、実は、等号・不等号は日付/時刻型に対しても使うことができ、対象の前後でレコードを抽出することができます。

まとめ

今回は、クエリを用いてテキスト型及び数値型のレコード抽出方法を紹介しました。クエリを一度作成しておくと、それ以降はテーブルにデータが登録された都度、レコード抽出をしてくれます。この点は、Excelでは中々対応が難しいものかもしれませんので、業務効率の改善を図る上で一つの参考にしていただければと思います。

スポンサーリンク

Kindle Unlimitedにサインアップして無料体験に登録する
Kindle Unlimitedに登録すると、人気のシリーズ、ベストセラー、名作などに好きなだけアクセスして、シームレスなデジタル読書体験を実現できます。

コメント

タイトルとURLをコピーしました