Accessのあいまい検索についてお探しですね。
広告
Accessで「あいまい検索」をマスターしよう!Like演算子の使い方を分かりやすく解説
Accessでデータベースを使っていると、「この商品名、なんて入力したっけ?」とか「確か”東京”って文字が入ってたはず…」なんて場面、よくありますよね。
完全に一致する言葉じゃなくても、一部の文字だけでデータを探せたら便利だと思いませんか?
そんな時に使えるのが「あいまい検索」という機能です。
この記事では、AccessでLike演算子とワイルドカードを使って、思い通りにあいまい検索する方法を丁寧に説明していきます。
あいまい検索って何?Like演算子の基本を理解しよう
普通の検索では「=」を使って完全に一致するデータを探しますよね。
でも、「一部だけ一致するデータ」を探したい時は「Like演算子」を使います。
これがあいまい検索の基本です。
Like演算子を使う時、必ずセットで登場するのが「ワイルドカード」という特殊な記号です。
これは「何か文字が入ってもOK」という意味を持つ便利な記号なんです。
よく使うワイルドカードは2つあります:
– **アスタリスク(*)**: 何文字でもOK(文字がなくてもOK)
– **疑問符(?)**: 何か1文字だけ
たとえば「株式会社」という言葉を含むデータを探したい時、前後に何が付いていても見つけられるように「*株式会社*」と書きます。
この「*」が「前後に何があってもいいよ」という意味になるわけです。
実際の仕事では、このアスタリスク(*)を使った検索が圧倒的に多いです。
テキストの前後にアスタリスクを付けるだけで、部分一致検索ができるようになります。
クエリでLike演算子を使ってみよう
では実際に、Accessのクエリでどうやってあいまい検索するのか見ていきましょう。
クエリのデザインビューを開いて、検索したいフィールドの「抽出条件」のところに条件を入力します。
書き方のポイントは、検索したい文字列とワイルドカードを**ダブルクォーテーション(“)で囲む**ことです。
よく使う3つの検索パターン
検索の目的によって、ワイルドカードの位置を変えるだけでいろんな検索ができます:
**1. 部分一致検索(どこかに含まれていればOK)**
“`
Like "*株式会社*"
“`
「東京株式会社」でも「株式会社ABC」でも「山田株式会社商店」でも、とにかく「株式会社」が入っていれば見つかります。
**2. 前方一致検索(その言葉で始まるもの)**
“`
Like "株式会社*"
“`
「株式会社ABC」や「株式会社山田商店」は見つかりますが、「東京株式会社」は見つかりません。
**3. 後方一致検索(その言葉で終わるもの)**
“`
Like "*株式会社"
“`
「東京株式会社」や「山田株式会社」は見つかりますが、「株式会社ABC」は見つかりません。
実際に使ってみる
たとえば、顧客リストから「東京」という文字を含む会社を全部探したい時は、抽出条件に次のように入力します:
“`
Like "*東京*"
“`
**ここで注意!** Likeとダブルクォーテーションの間には**必ず半角スペース**を入れてください。
全角スペースだったり、スペースがなかったりするとエラーになってしまいます。
VBAで検索フォームを作ってみよう
実際にAccessでシステムを作る時は、ユーザーが検索ボックスにキーワードを入力して検索できるようにしたいですよね。
そんな時はVBAを使います。
フォームで検索する時は、`Filter`プロパティを使って条件を設定します。
ただし、ここで多くの人がつまずくのが「クォーテーションの使い方」です。
VBAでの書き方のコツ
VBAであいまい検索を書く時は、シングルクォーテーション(‘)とダブルクォーテーション(“)、そしてアンパサンド(&)を組み合わせます。
最初は難しく感じるかもしれませんが、慣れれば簡単です。
具体的にはこんな感じ:
“`vba
Me.Filter = "顧客名 Like '*" & Me!検索テキストボックス & "*'"
“`
これ、何をやっているかというと:
1. 「”顧客名 Like ‘*”」という文字列
2. 検索ボックスに入力された値
3. 「”*'”」という文字列
この3つを「&」でつなげているんです。
たとえばユーザーが検索ボックスに「山田」と入力したら、最終的に`顧客名 Like ‘*山田*’`という条件になります。
この仕組みが分かれば、使いやすい検索フォームを自由に作れるようになりますよ!
うまくいかない時のチェックポイント
Like演算子を使っても思ったように検索できない…そんな時は、次のポイントをチェックしてみてください。
1. 全角と半角を間違えていないか
これが一番よくあるミスです!Like、アスタリスク(*)、ダブルクォーテーション(“)、アンパサンド(&)などの記号は**すべて半角**で入力する必要があります。
一つでも全角が混ざっていると、Accessは「これは検索条件じゃなくてただの文字だな」と判断してしまい、正しく動きません。
2. SQLモードの違いに注意
ちょっと上級者向けの話になりますが、Accessには「ANSI-89」と「ANSI-92」という2つのSQLモードがあります。
**普通にクエリを作ったりVBAを使う場合(ANSI-89)**
– ワイルドカード: アスタリスク(*)と疑問符(?)
**ADOで接続する場合やSQL Server互換モード(ANSI-92)**
– ワイルドカード: パーセント(%)とアンダースコア(_)
「クエリでは動くのに、VBAだと動かない!」という場合は、このSQLモードの違いが原因かもしれません。
ADOを使っている場合は、アスタリスク(*)の代わりにパーセント(%)を使ってみてください。
まとめ
あいまい検索は最初は少し難しく感じるかもしれませんが、慣れてしまえばAccessでのデータ検索がグッと便利になります。
まずは簡単な部分一致検索から試してみて、少しずつ使いこなせるようになっていきましょう!
広告
