2011年02月06日

MS-Accessでバージョン管理したい

中小企業は特に多いと思いますが、業務アプリをMS-Accessで作成することが多いと思います。
MS-Accessでは、1つのファイルに画面、帳票、DBといった機能を格納でき、そして簡単に作れてしまうところが魅力です。
もちろん、ファイルが壊れやすいというデメリットも多いのですが、設計だけでも使うという方も多いのではないでしょうか。(例えば、ERの設計や画面設計等)
そして、思った以上に本格的なものを作成することができます。


ですが、VSSを購入しなければバージョン管理できないという面があります。VSSを購入し、Accessにアドインを導入することで細かくフォームをバージョン管理できます。
ですが、私はSubversionやMercurialが好きなため、どうしてもVSSを使いたくなく、自分で何とかしたいなと前から考えていました。

考えた案は2つあり、いろいろとこの1年は試行していました。

1. 画面やDB、帳票のみAccessで設計し、業務処理(フォームやモジュール)の実装は、VBA以外で実行する
2. Accessのヘルプに出ていない機能を利用して、データをインポート・エクスポートする

1については、JavaからActiveX経由で実行する方法を検討しました。実はそれなりに動作するところまで実現できましたが、結局フォーム等はmdb単位になるため、あまり効果がなかったり、終了時等でのハンドリングが思ったよりも面倒で、保守性が低くやめました。

そこで2について、実現してみました。とはいえ、まだまだ作ってみたという段階でテストどころではありません。ですので、全くの保証外です。
直接バージョン管理できるものではなく、単にソースをインポート・エクスポートできるのみです。そのエクスポートしたファイルをコミットしたり、更新してmdbに更新しようというものです。
早めにTortoiseSVNとの連携と、リレーションにインポート・エクスポートに対応するつもりです。

また、今回は少し調査を目的としてライセンスを複雑にしました。ライセンスについては、このテキストを参照ください。
簡単に言えば、企業の方が利用する場合は事前に許可をとらない限りダウンロードはダメですというものです。許可をとればよいのみで、無償であるのは変りません。とはいえ、かなり厄介だとは思いますが、よろしくお願いします。

ダウンロードはここをクリックしてください。

まだまだ開発途上ですので、長い目でお待ちいただけたらと思います。
posted by Kiruahさん at 20:00| Comment(0) | TrackBack(0) | アナウンス