社員ブログ
HOME  社員ブログ
ホーム > ACCESS, 社員:cobra > MSAccess 全クエリをテキスト出力する方法。

MSAccess 全クエリをテキスト出力する方法。

2014年04月21日 11時31分21秒

こんにちは、コブラです。


Accessの全クエリから特定のカラムを見ているかどうかを調べるのに、

クエリを1つ1つ開いていたら時間がかかりすぎてしまうなあ…と思っていたら、

それを解決する策が見つかりました。

Access の全クエリーの SQL から文字列検索 – カイジのプログラマー日記様

Private Sub Command_Click()

    Dim Dbs         As DAO.Database
    Dim Qdf         As DAO.QueryDef
    Dim FileName    As String
    Dim FNum        As Integer
    Dim stSQL       As String
    Dim ret         As Double

    ' データベースセット
    Set Dbs = CurrentDb
    'Set Dbs = DAO.OpenDatabase("c:\test.mdb") ' DBの指定がある場合

    ' ファイルを開く
    FNum = FreeFile
    FileName = Mid(Dbs.Name, InStrRev(Dbs.Name, "\") + 1)
    FileName = Left(FileName, InStrRev(FileName, ".") - 1)
    FileName = "c:\" & FileName & "_Query.txt"
    Open FileName For Output Access Write As #FNum

    'クエリ分ループ
    For Each Qdf In Dbs.QueryDefs

        'クエリ名&SQLステートメント取得
        stSQL = "QueryName:" & Qdf.Name & vbCrLf & _
                "SQL:" & Qdf.SQL & vbCrLf & vbCrLf

        'ファイルに出力
        Print #FNum, stSQL

    Next

    Set Dbs = Nothing

    Close #FNum

    'ファイルを開く(notepad.exe)
    ret = Shell("notepad.exe " & FileName, vbNormalFocus)

End Sub



これを実行すれば、全クエリが指定したディレクトリにテキストファイルとして出力されます。

これなら、全クエリからカラム名で検索掛けることができますね!


ちなみに、実行方法は…

「モジュール」を新規作成し、上のコードをコピペして保存。

VBの画面をAlt+F11で開き、作成したモジュールを選択。

ツールバー「実行」から「Sub/ユーザフォームの実行」を選択。


ACCESS, 社員:cobra

  1. コメントはまだありません
  1. トラックバックはまだありません