内製のシステムを、Accessベースから.Netに移行している。 その際に最大のネックになるのはレポート機能。

Accessのレポート機能は正直相当優秀だと思う。.Netの有償アプリで同等の機能を持つものを選定すると、開発者向けライセンスが100万レベルのものになってしまう。 それが、Officeの上位ライセンスに付属し、ランタイムだけなら無償で利用できる。

一方でネックはコードの開発生産性の低さ。VBAの文法は古めかしいし、何よりテキストではないのでGitで管理できない。

上記のいいとこ取りとして、Accessファイルのレポート機能だけを利用する方法を考えている。 Accessファイル側はレポートとレコードソースとなるテーブルのみ保持し、起動時にそのレポートが初期表示されるように設定しておく。

.Netのプロジェクト側では常に配布するコンテンツとしてAccessファイルを保持し、ADO経由でレコードソースとなるテーブルにデータを設定する。 その後外部プロセスとして該当のAccessを起動すると、レポートが表示される。 外部プロセスなので細かい制御はできないが、用途によっては十分だろう。

帳票数が多いアプリではきついかもしれないが、移行できない少数のレポートを活用する場合には十分かと思われる。