帰りは気楽な歌で

Windows、VBScript等の小ネタ、その他個人の趣味(音楽等)を書いていきます。

VBScriptでmdb, accdbよりクエリのSQL文をファイル出力する(DAO)

Accessmdb、accdbはクエリやVBAソースなどが1ファイルにまとめられ、ある意味手軽です。

反面、クエリやソースがバイナリで保存されるため、いざ差分管理や調査を行う時にいちいちmdb・accdbを開かなければならない・・・めんどい!

そこで、クエリを出力すれば、ソース管理もしやすくなるかな?という事でVBScriptで組んでみました。

クエリの文字列抽出箇所のみに絞って書くと、こんな感じです。(Access 2010向け)

Option Explicit

Dim DAO      '
Dim Dbs      '   As DAO.Database
Dim Qdf      '   As DAO.QueryDef
Dim objOutText

'DAOの宣言(Access 2010をインストールされているPCだったので。バージョンに応じて書き換えてください)
Set DAO = WScript.CreateObject("DAO.DBEngine.120")

'データベースセット
Set Dbs = DAO.OpenDatabase("[AccessMDBファイルのフルパスを記載する。]")

'クエリ分ループ(リストボックスなどに使用されたクエリは除外している)
For Each Qdf In Dbs.QueryDefs

    If InStr(Qdf.Name, "~") = 0 Then

        '内容出力
        WScript.echo "***" & Qdf.Name & "***" & vbCrLf
        WScript.echo Qdf.SQL & vbCrLf
        WScript.echo "******" & vbCrLf

    End If

Next

Dbs.Close
Set Dbs = Nothing
Set DAO = Nothing
本ブログに記載のソースコード・情報を利用した際に生じたいかなる損害において、筆者は責任を負いません。十分な知識を持ったうえでご利用ください。