きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

Office 2013のDatabase Compare 2013でAccessファイルの差分を取る

Office Professional Plus 2013には、『Spreadsheet Compare 2013』と『Database Compare 2013』というツールがひっそり(?)同梱されています*1。名前から推測される通り、Spreadsheet Compare はExcelファイル、Database Compare はAccessのデータベースファイルを、ぞれぞれの比較するツールです。要はそれぞれのファイル要の専用diffツールですね。


Spreadsheet Compareについてはの詳細は nasuさんのが詳しく書かれておられますので、こちらのエントリ参照。
エクセルファイルの比較ができるSpreadsheet Compare 2013なるアプリケーションを知ってますか?


今回はまだあまり日本語で情報がなさそうな、Database Compare 2013を少し紹介してみたいと思います。

Office 2013のDatabase Compare 2013の起動と準備(?)

まずはおもむろに起動してみましょう。
何処にあるかわからない場合、Windows 8の場合はおもむろにスタートスクリーンで「database」とタイプしてみると、今こんな風に検索されると思いますので、これを起動してください*2



起動するとこんな画面です。日本語にローカライズされいませんが特に問題は無いでしょう。



では、さっそく使ってみましょう。
適当なAccessのファイルを読ませて、[Compare]を押すと…



あれ、なんかエラーが出ました。





調べてみると、Microsoft Report Viewer 2008の再配布パッケージが必要な模様。環境によってはすでに入っているのかもしれませんが、私の環境には無かったようです。その他、ここ( Database Compare (Office 2013) )にシステム要件などが書かれていますので、動かない場合は参照してみると良いと思います。


さて、気を取り直して、ダウンロードしてインストールしてみます。
Microsoft Report Viewer 2008 再配布可能パッケージ』の配布サイトにアクセスしてダウンロードし…。




保存したファイル「ReportViewer.exe」を実行します。




そしてウィザードに従ってインストールを実施します(以下、省略)。




Microsoft Report Viewer 2008 再配布可能パッケージのインストールが終わったら、再度実行してみます。

Office 2013のDatabase Compare 2013を試してみる

再度実行し、ファイルを二つばかり選択して、あと、いくつか比較対象も増やしておきましょう*3


Conpareをクリックすると、比較が始まりました。



しばらくすると、比較レポートが表示されます(画像をクリック後、『オリジナルサイズを表示』で元のサイズで見ていただけます。ご興味がある方はぜひリアルサイズでご確認ください)。


テーブルの定義変更は事細かに書かれていますね。クエリとモジュールについても、テキストで詳細に出力されています。一方、その他のオブジェクトについては変更の有無とその更新日時が表示されています。
また、上記の内容のとおりこのDatabase Compare 2013ではDB内のデータの比較はできないようです。あくまでもオブジェクト(の定義)の比較ができるツールのようですね*4



また、この内容はPDFとして保存可能です。



[Results]タブからは、モジュールとクエリのDiffを表示することができました。変更があるモジュールとクエリがリストアップされているので、詳細を確認したい項目を選択して、[Detail]ボタンをクリックしてみます。

こんな感じでモジュールの場合は、このようにDiffが表示されます。


まとめ

Accessのdbファイルの比較ができるDatabase Compare 2013は、こんなアプリケーションです。

  • Office Professional Plus 2013に同梱
  • 二つのAccessのファイル(accdb形式、mdb形式、mde形式...等々)の差分(diff)を確認できる
  • 比較されるのは以下
    • テーブル
    • クエリ
    • マクロ
    • モジュール(VBA
    • フォーム
    • レポート
    • ページ*5
  • 比較結果をレポートにまとめたPDFを出力可能
  • クエリとモジュールは個別に別ツール(簡易WinDiffっぽい)で詳しく参照可能

Access VBAでアプリケーションを作りこんだ時、変更差分の管理などに苦労している方も多いのではないかと思いますが、このDatabase Compare 2013を使うとずいぶん便利になるのではないでしょうか。
差分表示ツールもWinMargeやDF.exeなんに比べるとしょぼい感は否めないのですが、出来るのと出来ないのでは大違いですよね。

ただし本機能は、『Office Professional Plus 2013』のみで提供されており、Plusのつかない『Office Professional 2013』には同梱されていなようです*6。これらを使いたい方でこれからOffice 2013の導入を検討されるときは、ご注意ください。

*1:ひっそりかどうかはアレですが、少なくとも日本ではあまり大きく宣伝されてはいないですね

*2:余談ですがWindows 8は検索がとても快適です。これに慣れるとwin7の『スタートメニューを開いて探す』のは億劫になります。また検索精度や速度、使い勝手も7とは比べるべくもないです

*3:Pagesが何を指すのか実は良く知らないので、とりあえずこれはノーチェックでやりました

*4:SpreadSheet Compare 2013はExcelシート上のデータの差分も比較できるのでその点は異なります。

*5:すみません、私はこれが何のことはよくわかってません

*6:SpreadSheet Compare 2013も同様