5回にわたり、SQL文の書き方を紹介してきました。
今回は、紹介してきたSQL文を、VBAで実行した場合はどうなるのかということを紹介します。
目次
VBAでSQLを実行するには、公式を覚えることだ
こんにちは。伊川(@naonaoke)です。 今まで、紹介してきたSQLをVBAで実行したいと思います。 SQLとVBAは、少し書き方が違います。 しかし、前回、前々回等の動画を観ていれば、理解できると思います。 先にSQL文を書いて、後は、VBAの公式に当てはめればいいだけす。 SQL文を書けない人は、デザインビューで、先にクエリを作成して、SQLビューでSQL文を、コピペしてください。 誰でも、SQL文をVBAで実行することができます。このブログはこんな人にお勧め
チャネル登録について
✔SQL文を、VBAで実行したい人
✔SQL文の、クォーテーション、ダブルクォーテーションの付け方がわからない人
✔VBAで、SQL文を実行すると、必ずエラーが出る人
このブログを、読み終わるころには・・・・
このブログの結論
VBAで、SQL文を実行するのは、あまり、お勧めしません。
本当に、システムが、属人化します。
しかし、どうしても実行したい場合は、今回の公式を覚えてください。
書き方は、ACCESSから、Excelへ転送する場合も同じです。
VBAをSQLで実行する
このブログでも、何度か、VBAでSQLを実行する記事を、書いてきました。 しかし、クォーテーションや、アンパサンドなどで繋げるのが、結構面倒です。 なので、いやになります。 今回は、公式を紹介します。 この公式に当てはめてください。 Debug.Print strSQL はイミディエイトウィンドウに、SQL文を表示するためです。 削除しても構いません。 この公式に当てはめると、Q_Sが実行されて、クエリが表示されます。 事前に作成してください。公式当てはめ手順 作業手順 その1 カンタンなクエリを実行する
MT_Empoyee表からname列、gender列、birthday列を取得せよ このSQL文を書けない人は、下記を参照してください。 ACCESSのSQLビューから、SQL文をコピーします。 同じ結果になります。公式当てはめ手順 作業手順 その2 普通のクエリを実行する
MT_Empoyee表から,salary列が30万未満という条件で、name列とsalary列を取得せよ公式当てはめ手順 作業手順 その3 テーブルを結合する
MT_Empoyee表とMT_Department表を、MT_Empoyee表を基準としてdep_id列で左外部結合し、 MT_Empoyee表のname列とMT_Department表のname列を取得せよ公式当てはめ手順 作業手順 その4 サブクエリを実行する
MT_Empoyeeから、給料の平均以上を求めて、name,salary,dep_idを求めなさい。公式当てはめ手順 作業手順 その5 相関クエリを実行する
性別ごとにグループ分けして、 それぞれの性別で 最高齢の社員の性別、名前、生年月日を取得せよ イミディエイトウィンドウには、SQL文か表示されます。SQL文をVBAで実行するときの注意点
半角スペースを、入れないとエラーになります。 注意点は、ここだけです。ここがポイント
ここがポイント
今回は、SQL文をVBAで実行しました。
私が提示した、公式に代入すればなんの問題もありません。
もちろん、ExcelのVBAでも使えます。
本来の書き方は、クォーテーションや、アンパサンドを利用するのですが、
読みにくいというか、可読性はあるものの、結構、メンテナンスとかやりたくありません。
今回紹介した書き方がベストだと思います。
動画とブログでわかりやすくExcelとACCESSを紹介しています
まとめ
SQL文を、VBAで実行する意味があるのかと思うときもあります。 普通にクエリを作成することを、おススメします。 しかし、この書き方は、本文でも言ったように、ACCESSから、Excelへ転送するときに結構便利ではないかと思います。 今回も最後まで読んでいただきありがとうございました。 今回のサンプルファイルは、No301です。毎日の業務が、3時間短縮できます
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。