LoginSignup
2
2

More than 5 years have passed since last update.

Access内のクエリを、外部ファイルからインポートする。

Posted at

Access内のクエリを、外部ファイルで保存した方が効率が良い。

なぜなら、

  • Accessに保存したクエリを開きなおすと、勝手に改行が消える。

  • Accessはたまに壊れる。Access内に保存していると壊れた時に移植が大変。

  • Accessのクエリエディタ(SQL)はたまに2Byte文字の真ん中でカーソルがピコンピコンしている時がある。

  • Accessは開発にマウス操作が多すぎる。クリックしすぎて腱鞘炎になったかと思った。

  • 長いSQLを書くとエラーになるから、クエリを利用する事が増えてしまう。

  • 複数人で開発するとき、どでが正だか分からなくなる。そもそもAccessで開発っていう事はプロジェクト管理もいい加減だし。

と、とにかく外部のファイルで保管しておいた方が良い事が多いと思う。

外部ファイルに保存しているSQL ⇒ AccessのクエリにインポートするVBA

なので作った。


'クエリのインポート
''参照設定:Microsoft office 16.0 Object Library
Private Sub ImportQuery()

    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"

        If fs.FileExists(FileFullPath) Then
            'ファイル名と同じ名称のクエリがあったら、更新する。
            Set streamAt = fs.OpenTextFile(FileFullPath)
            queryAt.sql = streamAt.ReadAll
            Call streamAt.Close

        Else
            '無かったファイルをイミディエイトウィンドウへ
            Debug.Print fs.FileExists(FileFullPath) & "|" & queryAt.Name
        End If

        Set streamAt = Nothing
        Set queryAt = Nothing

    Next
    Set fs = Nothing

End Sub
2
2
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
2
2