VBScriptでmdb, accdbよりクエリのSQL文をファイル出力する(DAO)
Accessのmdb、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