こんにちは、なかぜんです。
今回は、Microsoft Accessの開発ファイルをGitやSVNでバージョン管理する方法について、初心者の方にもわかりやすく解説します。
Accessにもバージョン管理は必要?
Accessはフォームやクエリ、マクロなどを1つのファイル(.accdbや.mdb)で管理するため、変更履歴が残らず困った経験をした方も多いのではないでしょうか?
- 「昨日の状態に戻したいけど無理…」
- 「誰が何を変更したのかわからない」
- 「チームで開発したら競合して壊れた!」
そんなときに活用したいのが、GitやSVNといったバージョン管理ツール。これらをうまく使えば、Access開発もぐっと安心・効率的になりますよ。
GitやSVNでAccessを管理する方法
方法1:Accessファイルをそのまま管理(最も簡単)
まず一番手軽な方法は、.accdbや.mdbファイルそのものをGitやSVNに登録する方法です。
git init
git add your_project.accdb
git commit -m "初回登録"
この方法のメリットはとにかく簡単。
ただし、Accessファイルはバイナリ形式のため、差分が見えない・マージができないという欠点もあります。
方法2:オブジェクトをテキストでエクスポートして管理
Accessには標準でVBAのモジュールやフォームをテキスト形式で保存する機能があります。以下のようにVBAからエクスポートして、Gitで管理する方法が効果的です。
VBAコードでエクスポート(例)
Public Sub ExportAllModules()
Dim accObj As AccessObject
Dim obj As Object
For Each accObj In CurrentProject.AllModules
DoCmd.Save acModule, accObj.Name
Application.SaveAsText acModule, accObj.Name, "Export\" & accObj.Name & ".bas"
Next
End Sub
このコードは、すべてのモジュールをExportフォルダにテキスト形式で保存します。これをGitで管理すれば、差分確認や復元が可能になります。
バージョン管理の注意点
- Gitでバイナリファイルの差分は見えません。→テキストエクスポートを活用しましょう。
- 共有作業時は同時編集NG。→ロック制御や分担を明確に。
- 一括エクスポート&インポートの仕組みを用意しておくと便利です。
応用:フォームやレポートもテキストで管理するには?
実はフォームやレポートも、Application.SaveAsText
メソッドでテキスト出力できます。
Application.SaveAsText acForm, "F_顧客管理", "Export\F_顧客管理.txt"
Application.SaveAsText acReport, "R_売上集計", "Export\R_売上集計.txt"
これらを定期的に保存しておけば、改修履歴の確認や旧バージョンへのロールバックも簡単です。
インポートする場合は?
Application.LoadFromText acForm, "F_顧客管理", "Export\F_顧客管理.txt"
LoadFromTextで元に戻せるので、安心して履歴管理が可能です。
まとめ:Access開発も“履歴を残す”時代へ
Accessは単体ファイルで完結しがちですが、チーム開発や品質向上のためにバージョン管理は必須です。
- まずはGitでファイルごと管理する
- 慣れてきたらテキストエクスポートによる詳細管理へ
VBAの自動化で「エクスポート&コミット」を仕組みにできれば、もう一人前のAccess開発者ですね。
次のステップ
次は「Accessの開発環境を複数人で安全に使う方法」や「Gitと連携した開発ルールの作り方」にもチャレンジしてみましょう!
それではまた、なかぜんでした。
