見出し画像

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

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

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でも使えます。

本来の書き方は、クォーテーションや、アンパサンドを利用するのですが、

読みにくいというか、可読性はあるものの、結構、メンテナンスとかやりたくありません。

今回紹介した書き方がベストだと思います。

 

まとめ



SQL文を、VBAで実行する意味があるのかと思うときもあります。

普通にクエリを作成することを、おススメします。

しかし、この書き方は、本文でも言ったように、ACCESSから、Excelへ転送するときに結構便利ではないかと思います。

今回も最後まで読んでいただきありがとうございました。

 サンプルファイル

私のホームページでも販売しています。このようなファイルは、全部で、300ファイル前後ありますが、総ダウンロード数は、10,000件を、超えました。10,000件超えてから、面倒なので、カウントしていないです。

勉強したい方、会社の実務で利用したい方にお勧めです。

はっきり言いますが、ネットで調べる時間を考えたら、購入したほうが、時間の節約になります。

まして、ネットのコードは、作動するとは限りません。

料金は、200円です。

よろしくお願いします。

ここから先は

60字

¥ 200

よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。