AccessのMDB/ACCDBファイルからほぼすべての要素をレポートにまとめるツール

日曜日 , 2, 2月 2020 Leave a comment

Microsoft Access.mdbファイル/.accdbファイルから、テーブル/クエリ/フォーム/レポート/モジュール/マクロの一覧表を作成するプログラムを公開します。

(2020/02/06更新)

2020-02-02 (1)このプログラムは、指定されたディレクトリ以下にあるAccessのMDB/ACCDBファイル(以下、Accessファイル)を探し出し、Accessファイルに含まれるテーブル/クエリ/フォーム/レポート/マクロに含まれる各要素(フィールドの定義やフォームに貼り付けられたコントロールなど)の情報をExcelシートに一覧出力することができます。
また、複数のMDB/ACCDBファイルに含まれるVBAのソースコードを階層構造を保ったままテキストファイルとして一括エクスポートすることもできます。

テーブルやクエリだけでなく、フォーム・レポートを構成するすべての要素、線の一本にいたるまで一覧に出力し、コントロールにひもづくコントロールソースもあわせて出力するので、既存のAccess資産の改修前調査や解析などに有用です。

※現状では、処理対象のファイル形式を.mdb、.accdbに絞っていますが、おそらくその他のAccessファイルの取り扱いもできると思います。必要に応じてソースコード中のコメントを参照しながら改造してください。

  • 開発環境
    Visual Studio Professional 2019 Version 16.4.3
    ( Visual Studio 2019以外にVisual Studio 2015でビルドできることを確認しています )
  • 動作確認した環境
    Windows 10 Ver. 1909 (ビルド 18363)
    Access 2013(Office Professional 2013)
  • ライセンス
    NYSL ( http://www.kmonos.net/nysl/ )
  • ダウンロード (2020/02/06 更新 / ソースのみ提供)
    http://www.ria-lab.com/omiyage/mdb_export_1.0.3_src.zip

ビルド

  1. ダウンロードしたソース一式をお使いのVisual Studioに読み込みます。
    ※Visual Studioをお持ちでない場合、こちらからCommunity版が無償で入手可能です。
  2. Visual Studio中の参照設定を開き、使用しているAccessのバージョンにあわせたCOMオブジェクトを選択しなおします。
  3. ビルドします。

使い方

  1. MDB_Export.exeを起動します。
  2. データベースの格納ディレクトリ(元ファイルが格納されたディレクトリ)とエクスポート先ディレクトリを指定します。
  3. Excelに出力する際、指定した文字列パターンを含むセルを強調表示したい場合、強調表示するパターンに文字列または正規表現を入力します。
  4. 2020-02-03

  5. オプションを指定し、実行ボタンをクリックします。
    説明プロパティを出力しない: Accessの各要素の説明プロパティに設定された値をExcelに出力しません(処理が速くなります)。
    VBAモジュールのエクスポートのみ実行: Accessファイルに含まれるモジュールのエクスポートのみ実行します。
  6. 処理が完了するとダイアログが表示されます。
    エクスポート先ディレクトリとして指定した場所にExcelブックとソース一式が出力されます。

更新履歴

    • 2020/02/02 Ver.1.0 初版公開
    • 2020/02/03 Ver.1.0.1 Accessファイルを開くときに時間調整するように変更
    • 2020/02/03 Ver.1.0.2 セルに出力した文字列中に指定文字列/パターンが含まれる場合、セルを強調表示する機能を追加
    • 2020/02/05 Ver.1.0.3 クエリのSQLを出力するように変更。強調表示対象となるセルを検出した行にExcelのフィルタ機能で絞り込みをするためのマーカーを出力するように変更。

注意事項

とある案件で大量のAccessファイルを調査する必要があり、この作業を省力化するために作ったツールです。
このため必要とする最低限の機能しか実装しておりませんしエラーチェックも適当です。また場当たり的な実装も多数含んでいます。この点ご了承ください。

プログラムの実行中、なんらかの理由によりエラーが発生したとき、Accessのプロセスが残ってしまうことがあります。その場合、タスクマネージャからプロセスを終了させてください。

Accessのファイルは、Access 2003で作成したMDBファイルが開けることを確認していますが古いファイル(Access 97以前のバージョンか?)ではエラーが出てしまうようです。

Please give us your valuable comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください