それほど大きくないシステムでMS-ACCESSを利用して構築する案件は
予想外に多かったりする。
(オイラのまわりだけかもw)
で、単独での開発なら良いけど複数人での開発となると
ちょっと厄介。
どうしてもデグレが発生しやすい。
VBAのソースだけなら良いけど、フォーム等のプロパティもあるし。
ただ、各オブジェクトをテキストとして出力もできるんだよね。
ヘルプ等では公開されてないようだけど。
SaveAsText ってやつね。
で以下のモジュールをつくってみた。
'-----------------------------------------------
'モジュール一括出力
'-----------------------------------------------
Public Sub Addin_subOutModule(strFolder As String)
Dim aObj As Object
Dim FName As String
On Error GoTo Err_Addin_subOutModule
'全モジュール出力
For Each aObj In CurrentProject.AllModules
FName = strFolder & "module_" & aObj.Name & ".txt"
Application.SaveAsText acModule, aObj.Name, FName
Next
'全フォーム出力
For Each aObj In CurrentProject.AllForms
FName = strFolder & "form_" & aObj.Name & ".txt"
Application.SaveAsText acForm, aObj.Name, FName
Next
'全レポート出力
For Each aObj In CurrentProject.AllReports
FName = strFolder & "report_" & aObj.Name & ".txt"
Application.SaveAsText acReport, aObj.Name, FName
Next
'全マクロ出力
For Each aObj In CurrentProject.AllMacros
FName = strFolder & "macro_" & aObj.Name & ".txt"
Application.SaveAsText acMacro, aObj.Name, FName
Next
'全クエリ出力
For Each aObj In CurrentData.AllQueries
FName = strFolder & "querydef_" & aObj.Name & ".txt"
Application.SaveAsText acQuery, aObj.Name, FName
Next
Set aObj = Nothing
Exit Sub
Err_Addin_subOutModule:
MsgBox Err.Description
Resume Next
End Sub
-------------------------------------------
strFolder に出力先フォルダ名(最終文字に¥付き)を指定してコールするだけ。
ただオブジェクト名に"/"等があると駄目だけど^_^;
出力ファイルで差分を取れば変更箇所が判定できる。
(編集しなくても変わる項目もあるけど…)
以前アドインとして公開してるソースから引用してます。
VBAStepCounterForAccess2000 ってやつね(^^ゞ
ACCESS2000 ~ 2007までは出来るはず。2010は知らんw
0 件のコメント:
コメントを投稿