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