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でのデータ検索がグッと便利になります。

まずは簡単な部分一致検索から試してみて、少しずつ使いこなせるようになっていきましょう!

広告