Help us understand the problem. What is going on with this article?

Accessのクエリを、外部のファイル出力したい。

More than 1 year has passed since last update.

慣れないAccessでの作業を快適にするための方法メモ

Accessは嫌い。だってGrepできないし。

誰かが作ったMDBを仕様変更する時、影響範囲のチェックは必須。
だけど、サクッと調べたくてもGrepできないので困る。

.net C#なら全てテキスト保存されているからGrepで影響範囲のチェックが簡単にできる。

それに比べてAccessは、右クリックやらダブルクリックやらした中に重要な設定を埋め込む。

クリックしすぎで腱鞘炎になるかと思う。

困る。

バッっとクエリをGrepして、バッっと影響範囲のチェックしたい。

クエリ⇒外部ファイルに出力するVBA

なので作った。

'クエリの出力
''参照設定:Microsoft office 16.0 Object Library
Private Sub ExportQuery()

    Dim queryAt         As QueryDef
    Dim fs              As New Scripting.FileSystemObject
    Dim streamAt        As Scripting.TextStream
    Dim BaseDir         As String
    Dim FileFullPath    As String

    '出力先を指定。ここではプロジェクトフォルダ直下
    BaseDir = CurrentProject.Path & "\"

    For Each queryAt In CurrentDb.QueryDefs 'クエリ分だけ回す

        'ファイル名をフルパスで作成。 ここではクエリと同じ名称にする。
        FileFullPath = BaseDir & queryAt.Name & ".sql"

        'ファイル作成 (既に存在する場合上書き)
        Set streamAt = fs.CreateTextFile(FileFullPath, True, False)

        'SQLの出力
        Call streamAt.Write(queryAt.sql)

        Call streamAt.Close
        Set streamAt = Nothing
        Set queryAt = Nothing

    Next
    Set fs = Nothing

End Sub
mkam
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away