このブログで言いたいことは、
ワイルドカードの * と % を、使い分けるということです。
目次
〇〇を含むデータを抽出しろと言われたら?
こんにちは。伊川(@naonaoke)です。
今回は、データベースを作成して、上司から、〇〇を含むデータを抽出してほしいと言われた時のお話です。
都道府県は、データベースを作成する際に、決めたほうがいいです。
結局、Excelでも、IF関数や、PowerQuery等で、抽出はできます。
しかし、予め決めておけば、無駄な労力を使わなくて済むからです。
データベースを作成していると、どうしても○○を含むデータを抽出することがあります。
しかも、そのデータをExcelで確認したい・・・・・・・・
ACCESSでクエリを作成して、Excelに貼ってよ、って思います。
しかし、ここは、上司の望みを叶えましょう。
なぜならば、それこそが、あなたのスキルになるからです。
このブログはこんな人にお勧め
- SQL文でワイルドカードの書き方がわからない人
- いつも、上司の無茶な命令に従っている人
- ExcelとACCESSの連携を勉強している人
このブログを、読み終わるころには・・・・
ExcelとACCESSの転送の際に、ワイルドカードの書き方を理解することができます。ACCESSで利用するワイルドカードと、ExcelとACCESSの転送時に使うワイルドカードは少し違います。
ワイルドカードは、VBAだけではなく、ExcelのworkSheet関数でも使えます。
ExcelのworkSheet関数でも結構紹介していますので、ぜひ、あなたのスキルにしてください。
ワイルドカード
このブログでも、動画でも何度も説明しておきます。
一言でいうなら、あいまいな検索や、抽出ということができます。
初心者の頃は、ワイルドカードと聴くだけで、びっくりしますが、用語の1つです。
〇〇を含むデータを抽出 作業手順 その1 データベース確認
前回の使いまわしで申し訳ないです。
このデータベースに関して、「川」を含むデータを抽出しなさいと上司から依頼されたとします。
クエリで抽出するなら、Like “*川*” と書きます。
〇〇を含むデータ抽出 作業手順 その2 ACCESSからExcelへの転送の時にぶつかる壁
では、○○を含むクエリを作成してから、Excelへ転送すれば、いいのではないか?
必ずこのように思います。
ワイルドカードで作成したクエリは、転送できません。
理由はわかりません。
○○を含むというコードをExcel側のVBAで指定する必要があります。
ここが、少し難しいところです。
〇〇を含むデータ抽出 作業手順 その3 転送時のVBAのSQL文
SQL = “SELECT * FROM MT_test Where [名前] Like ‘%川%'”
このように記載します。
ACCESSのワイルドカードは、[*]です。
しかし、転送時のワイルドカードは、[%]で指定します。
この部分は、知っているか、知らないかの問題です。
ACCESSと同じように[*]で記載してもエラーになりますので、気を付けてください。
そして、この違いを知らない人は、覚えてください。
〇〇を含むデータ抽出 作業手順 その4 完成のコード
ここがポイント
今回は、ワイルドカードの書き方について、紹介しました。しかし、重要なのは、ワイルドカードを使わなくても、データ抽出できるようなデータベースを作成することです。
ここが肝心なとこです。
ACCESSは、大工道具なのです。
その職人の色が際立つシステムです。
データベースを作成するときの、設計図をおろそかにしてはいけません。
まとめ
よく、実務であるあるのことを紹介しました。
上司の命令に負けないようにスキルアップを目指しましょう。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルは、No208です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。