0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VBAでクエリの中身を確認、修正するためのベストプラクティス?

Last updated at Posted at 2025-02-27

今回はAccess VBAで開発を行っている中で、よく使っているクエリの中身を確認する方法をご紹介します。

はじめに

クエリの中身をデバッグ中、ローカルウィンドウ等で確認することがありますよね。

しかしクエリが長い場合は表示しきれず切れてしまい、全量を確認することができずに困ってしまうことがありました。

全量を確認できないと、クエリのエラーが起こっている場合にとても困りますし、クエリに変数を使っている場合は変数を置換してあげなくてはならず、デバッグのたびにストレスが溜まります。

これから紹介する方法でだいぶデバッグが楽になったので、もしお困りでしたら使ってみてください。

方法

方法は簡単です。

①確認用のクエリを作成する

中身は何でもOKなので(後からすべて置換するため)、クエリを確認するためのクエリを作成してください。

今回はviewQueryという名前のクエリを作成しました。

image.png

②プロシージャにコードを記述する

クエリを書き換えるためのコードは以下だけになりますので、ある程度分かる方はコードだけご利用ください。

    'デバッグ用(クエリ中身確認)
    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ビューで開きます。

image.png

きちんとクエリが取得できていることが確認できました🎉

このまま、Access側でクエリを実行してデバッグすることで、エラー原因を早く突き止めることができます。

一つデバッグ用のクエリを作っておくと、使い回しができるので便利ですよ。

おわりに

読んでいただきありがとうございました!

これがベストプラクティスかは微妙なところですが…

個人的によく使っているデバッグ方法をご紹介でした!

この方法の他に良いデバッグ方法があれば教えてください。

お役に立てれば幸いです。

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?