【ACCESS VBA】VBAでSQLを実行するには、公式を覚えることだ

記事
IT・テクノロジー

YouTubeでも紹介しています。是非ご覧ください。


5回にわたり、SQL文の書き方を紹介してきました。
今回は、紹介してきたSQL文を、VBAで実行した場合はどうなるのかということを紹介します。



VBAでSQLを実行するには、公式を覚えることだ

こんにちは。伊川です。
今まで、紹介してきたSQLをVBAで実行したいと思います。
SQLとVBAは、少し書き方が違います。
しかし、前回、前々回等の動画を観ていれば、理解できると思います。
先にSQL文を書いて、後は、VBAの公式に当てはめればいいだけす。
SQL文を書けない人は、デザインビューで、先にクエリを作成して、SQLビューでSQL文を、コピペしてください。
誰でも、SQL文をVBAで実行することができます。



このブログはこんな人にお勧め



SQL文を、VBAで実行したい人
SQL文の、クォーテーション、ダブルクォーテーションの付け方がわからない人
VBAで、SQL文を実行すると、必ずエラーが出る人


このブログを、読み終わるころには・・・・

VBAで、SQL文を実行するのは、あまり、お勧めしません。
本当に、システムが、属人化します。
しかし、どうしても実行したい場合は、今回の公式を覚えてください。
書き方は、ACCESSから、Excelへ転送する場合も同じです。


VBAをSQLで実行する

このブログでも、何度か、VBAでSQLを実行する記事を、書いてきました。
しかし、クォーテーションや、アンパサンドなどで繋げるのが、結構面倒です。
なので、いやになります。
今回は、公式を紹介します。
この公式に当てはめてください。
1.png

Debug.Print strSQL はイミディエイトウィンドウに、SQL文を表示するためです。
削除しても構いません。
この公式に当てはめると、Q_Sが実行されて、クエリが表示されます。
事前に作成してください。


公式当てはめ手順 作業手順 その1 カンタンなクエリを実行する


MT_Empoyee表からname列、gender列、birthday列を取得せよ

2.png

3.png


このSQL文を書けない人は、下記を参照してください。
ACCESSのSQLビューから、SQL文をコピーします。

4.png

5.png

同じ結果になります。

公式当てはめ手順 作業手順 その2 普通のクエリを実行する


MT_Empoyee表から,salary列が30万未満という条件で、name列とsalary列を取得せよ

6.png

7.png

公式当てはめ手順 作業手順 その3 テーブルを結合する


MT_Empoyee表とMT_Department表を、MT_Empoyee表を基準としてdep_id列で左外部結合し、
MT_Empoyee表のname列とMT_Department表のname列を取得せよ

8.png

9.png


公式当てはめ手順 作業手順 その4 サブクエリを実行する

MT_Empoyeeから、給料の平均以上を求めて、name,salary,dep_idを求めなさい。

10.png

11.png


公式当てはめ手順 作業手順 その5 相関クエリを実行する


性別ごとにグループ分けして、
それぞれの性別で
最高齢の社員の性別、名前、生年月日を取得せよ

12.png

13.png

14.png


イミディエイトウィンドウには、SQL文か表示されます。

SQL文をVBAで実行するときの注意点

15.png

半角スペースを、入れないとエラーになります。
注意点は、ここだけです。


ここがポイント

今回は、SQL文をVBAで実行しました。
私が提示した、公式に代入すればなんの問題もありません。
もちろん、ExcelのVBAでも使えます。
本来の書き方は、クォーテーションや、アンパサンドを利用するのですが、
読みにくいというか、可読性はあるものの、結構、メンテナンスとかやりたくありません。
今回紹介した書き方がベストだと思います。


まとめ

SQL文を、VBAで実行する意味があるのかと思うときもあります。
普通にクエリを作成することを、おススメします。
しかし、この書き方は、本文でも言ったように、ACCESSから、Excelへ転送するときに結構便利ではないかと思います。
今回も最後まで読んでいただきありがとうございました。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す