3
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-02-26

慣れない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
3
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?