Kazuki.io

プログラミングやITガジェットなどの備忘録だよ。人の役に立てばいいな。

とにかくVBAでSQLのクエリを実行したい

「もうとにかく、VBAでSQL Serverのクエリ発行したんじゃ!」

 本当に時間がないけど、簡易ツールとしてVBAでクエリ発行したい時のメモ書き。

 

とりあえず次の手順を行えばOK。ある程度きれいな設計にしています。(本当か)

 

 

 

Visual Basicを開く

f:id:kazukisaito:20180526003633p:plain

 

DBAccessクラスモジュールを作る

Visual Basicの画面左側にあるプロジェクト上で右クリック > 挿入 > クラスモジュールを選択。

f:id:kazukisaito:20180526003900p:plain

 

作るとClass1ができる。F4キーでプロパティ開いて、「DBAccess」という名前にしておく。※お好きなお名前でどうぞ。

f:id:kazukisaito:20180526003728p:plain

 

DBAccessクラスのコードを書く

DBAccessのコードは次のようにする。

Execute Query from VBA

 

ボタンを配置

Excelシートに戻って…

開発タブ > 挿入 > ActiveXコントロールのボタンを選択!

f:id:kazukisaito:20180526005002p:plain

 適当な場所に配置!(マウスでお好きな場所をクリック)

f:id:kazukisaito:20180526005103p:plain

 

ボタンクリック時の動作を書く

ボタンをダブルクリック! するとVisual Basicの画面に遷移して、以下のコードが自動生成。

f:id:kazukisaito:20180526005310p:plain

 

さらにこう書く!

ExecuteQuery from VBA

 10行目のExecuteQuery()の中に実行したいクエリを書こう!

例えば、

ExecuteQuery("SELECT userId, userName FROM tblUser")

 

参照設定 

これはよく忘れるので注意!

Visual Basicのツール > 参照設定を選択。

f:id:kazukisaito:20180526010513p:plain

「Microsoft ActiveX Data Objects 2.8 Libary」を選択して、OKボタンをクリック。

f:id:kazukisaito:20180526010319p:plain

 以上で、SQL Serverにアクセスし、クエリを実行できるだろう。

とりあえず、今回はクエリを実行することだけに焦点をおき、その結果を変数に返すところまでは書いていない。

 

時間があったら書いておきます(^^)