スポンサーリンク

Accessのバージョン管理どうしてる?運用の工夫

スポンサーリンク
Access
スポンサーリンク

こんにちは、なかぜんです。
Accessアプリを業務で開発・運用していると、「この変更、前のバージョンではどうだったっけ?」とか、「誰がどこを変更したの?」といった悩み、ありませんか?

Accessは便利なツールですが、ExcelやWordと違って、ドキュメント的なバージョン履歴が残りません。しかも、1つのファイルに全機能が詰まっているため、ちょっとした変更でも取り返しのつかない事態に発展することも…。

今回は、そんな悩みに向けて「Accessアプリのバージョン管理の工夫」をご紹介します。
実務で役立つ手法から、応用までわかりやすく解説していきますね。

スポンサーリンク

Accessでバージョン管理が難しい理由

単一ファイル構造とバイナリ形式の限界

Accessは、拡張子「.accdb」や「.mdb」のファイル1つに、フォーム、テーブル、クエリ、マクロ、VBA…すべてが詰まっています。中身をテキストで直接確認できないため、Gitなどのバージョン管理ツールとは相性が悪いんです。

変更履歴が残らない

Access単体では「誰が・いつ・どこを」変更したかという履歴が残りません。複数人で運用していると、「あれ?動かなくなった…誰か触った?」というトラブルも頻発します。

基本の工夫:フロントエンドとバックエンドの分離

Accessアプリの運用では、まず「フロントエンド(UI・ロジック)」と「バックエンド(データ)」を分けておくのが基本中の基本です。

分離のやり方

Accessの「外部データ」→「Access」から、バックエンド用のDBをリンクテーブルとして取り込みます。
フロントエンド(操作画面側)はローカル配布し、データはサーバー共有します。

この構成にすることで、フロントだけ差し替える運用が可能になり、バージョン管理もやりやすくなります。

実践!テキスト化してGitで管理

「SaveAsText」「LoadFromText」を活用

Accessの各オブジェクト(フォーム・モジュールなど)は、実はVBAからテキスト形式で出力可能です。以下はそのサンプルコードです。

' フォームをテキストに保存
Application.SaveAsText acForm, "F_受注入力", "C:\Export\F_受注入力.txt"

' テキストからフォームを読み込み
Application.LoadFromText acForm, "F_受注入力", "C:\Export\F_受注入力.txt"

この仕組みを活用すれば、オブジェクト単位で変更を追跡できるようになります。
テキスト化されたファイルは、GitやSVNなどのバージョン管理システムにそのまま取り込めるので、差分チェックや履歴管理もばっちり。

おすすめツール

  • Ivercy:商用ツール。AccessとSourceSafe/Gitを統合。
  • msaccess-vcs-addin:オープンソースで導入しやすい。

運用の工夫ポイント

フォルダ構成を決める

開発者全員で共通のルールを持ちましょう。例えば、

  • 「リリース版」「作業中」「旧バージョン」などフォルダを分ける
  • ファイル名に日付+バージョン番号を入れる(例:MyApp_20250817_v1.accdb)

自動バックアップマクロを組む

アプリを閉じるタイミングで自動的にコピーを取るマクロやVBAを組み込むと、万が一のときも安心です。

よくあるミスと注意点

  • Gitにバイナリのまま登録してしまう → 差分が取れず意味がない
  • テキスト出力後にコードのエンコーディングが崩れる → UTF-8で保存を
  • LoadFromTextでインポート時、元のオブジェクトが上書きされるので注意

応用ポイント:CI/CD風の運用も可能!

以下のような応用も可能です。

  • GitHub Actions等で、コミット時に自動ビルド(LoadFromText)
  • 変更があったオブジェクトだけ差し替え
  • バグ修正ログや変更履歴をリリースノート形式で自動出力

ここまでやると、かなり「システム開発っぽく」なりますね!

まとめ:バージョン管理は「安心のための仕組み」

Accessのバージョン管理は、少しの工夫で大きな安心につながります。

  • まずはフロント/バックの分離から
  • 慣れてきたら、SaveAsText+Git運用
  • ファイル名・フォルダ名ルールを決めて、誰が見ても分かる構成に

「自分には難しそう…」と思わずに、できるところから一歩ずつ始めてみましょう。
なかぜんも最初は手探りでしたが、今ではバージョン履歴を見返して「やってよかった」と心から思っています。