今回はAccess VBAで開発を行っている中で、よく使っているクエリの中身を確認する方法をご紹介します。
はじめに
クエリの中身をデバッグ中、ローカルウィンドウ等で確認することがありますよね。
しかしクエリが長い場合は表示しきれず切れてしまい、全量を確認することができずに困ってしまうことがありました。
全量を確認できないと、クエリのエラーが起こっている場合にとても困りますし、クエリに変数を使っている場合は変数を置換してあげなくてはならず、デバッグのたびにストレスが溜まります。
これから紹介する方法でだいぶデバッグが楽になったので、もしお困りでしたら使ってみてください。
方法
方法は簡単です。
①確認用のクエリを作成する
中身は何でもOKなので(後からすべて置換するため)、クエリを確認するためのクエリを作成してください。
今回はviewQueryという名前のクエリを作成しました。
②プロシージャにコードを記述する
クエリを書き換えるためのコードは以下だけになりますので、ある程度分かる方はコードだけご利用ください。
'デバッグ用(クエリ中身確認)
db.QueryDefs("viewQuery").SQL = query
全体はこちらとなっております。
Sub QiitaTest()
'変数の宣言
Dim db As DAO.Database
Dim query As String
Dim fruits As String
'カレントデータベースを取得する
Set db = CurrentDb
fruits = "イチゴ"
query = "SELECT 果物 FROM 果物マスタ WHERE " & fruits
'デバッグ用(クエリ中身確認)
'※括弧の中に①で準備したクエリ名を記述します※
db.QueryDefs("viewQuery").SQL = query
db.Close
End Sub
query部分には確認したいクエリをお好きなように記述してください。
右辺に直接クエリを書いても問題ないですが、コードを使いまわしたいため、私は変数に格納したクエリを使用しています。
実行する
実行してみましょう。
実行したら、Accessの方に戻って①のクエリをSQLビューで開きます。
きちんとクエリが取得できていることが確認できました🎉
このまま、Access側でクエリを実行してデバッグすることで、エラー原因を早く突き止めることができます。
一つデバッグ用のクエリを作っておくと、使い回しができるので便利ですよ。
おわりに
読んでいただきありがとうございました!
これがベストプラクティスかは微妙なところですが…
個人的によく使っているデバッグ方法をご紹介でした!
この方法の他に良いデバッグ方法があれば教えてください。
お役に立てれば幸いです。