14 クエリ系 - クエリのSQL文を収集する

カレントデータベース内にあるクエリのSQL文の一覧を収集します。
  1. まず「Database」オブジェクトの変数である「dbs」に”カレントデータベース”をセットします。

  2. そのデータベース内にあるすべてのクエリのコレクションである「QueryDefs」の中から、For Each〜Nextステートメントでひとつずつクエリ情報を取り出し、「QueryDef」オブジェクトの変数「qdf」にセットしていきます。

  3. VBAで扱うQueryDefsコレクションには、ナビゲーションウィンドウに表示されるクエリの他、フォームのレコードソースやコンボボックス等の値集合ソースプロパティに直接記述されているSQL文なども含まれています。

    それらのクエリは名前の先頭に「~sq_」という4文字が内部的に付加されていますので、ここではそれを判別してIf文で除外します。

    ※もしそれらのクエリも収集対象とするのであれば、このIfの条件式を抹消します。

  4. 取り出されたクエリ情報のうち、クエリ名である「Name」プロパティの値をイミディエイトウィンドウに出力します。

  5. さらに、”SQL文”が格納されている「SQL」プロパティの値をイミディエイトウィンドウに出力します。

Sub Sample_2_04()
'クエリのSQL文を収集する

  Dim dbs As Database
  Dim qdf As QueryDef

  Set dbs = CurrentDb
  For Each qdf In dbs.QueryDefs
    With qdf
      If Left$(.Name, 4) <> "~sq_" Then
        Debug.Print "■" & .Name
        Debug.Print .SQL
        Debug.Print "------------------"
      End If
    End With
  Next qdf

End Sub

実行例:


| Index | Prev | Next |



Copyright © T'sWare All rights reserved