Accessのクエリ・マクロ・VBAを読み解く方法|移行前に業務ルールを洗い出す手順

Accessで作られた業務システムを、Webシステムなどに移行するとき、一番時間がかかるのは「今のAccessが何をしているかを正確に知る」作業です。Accessでは、業務のルールがテーブル、クエリ、フォーム、マクロ、VBAのあちこちに分かれて書かれており、作った人がいないと全体像がつかめません。
この記事では、Accessのクエリ・マクロ・VBAを読み解き、移行前に業務ルールを洗い出す手順を解説します。
- 業務ルールはクエリ・フォームのイベント・マクロ・VBA・テーブルの設定に分散している
- まずオブジェクトの一覧と依存関係を作り、使われていないものを除く
- 読み解いたルールは、業務の言葉の一覧にして担当者に確認する
- 落とし穴は、フォームに直接書かれた計算・リンクテーブル・手動で実行するクエリ
業務ルールが書かれている場所
| 場所 | 書かれていることの例 |
|---|---|
| テーブル | 入力の規則、既定値、必須の設定、リレーションシップ |
| クエリ | 集計、抽出の条件、更新・削除・追加のクエリによるデータの書き換え |
| フォーム | コントロールの計算式、入力時のチェック、ボタンのクリックで動く処理 |
| レポート | 帳票の計算式、グループごとの小計、印刷時の処理 |
| マクロ | 起動時の処理(AutoExec)、ボタンから呼ぶ一連の処理 |
| VBA(モジュール) | 複雑な計算、ファイルの取り込み・書き出し、他のシステムとの連携 |
同じ計算が、クエリとフォームとVBAの3か所に少しずつ違う形で書かれていることもあります。どれが実際に使われているかを確かめずに移行すると、新しいシステムで結果が合わない原因になります。
読み解きの手順
- オブジェクトの一覧を作るテーブル、クエリ、フォーム、レポート、マクロ、モジュールの名前と種類、最終更新日を一覧にする
- 依存関係を調べるどのフォームがどのクエリを使い、どのクエリがどのテーブルを使うかをたどる
- 入口を特定する起動時に開くフォーム(メニュー)から、利用者が操作できる範囲をたどる
- 使われていないものを分けるどこからも呼ばれていないクエリやフォームを、候補として分ける(担当者に確認してから除く)
- ルールを抜き出す計算式、条件、更新の処理を、業務の言葉に直して一覧にする
- 担当者に確認する一覧を業務の担当者と読み合わせ、「なぜそうなっているか」を確認する
Accessには、オブジェクトの依存関係を表示する機能やデータベース構造の解析機能があります。数が多い場合は、VBAでオブジェクトの定義(クエリのSQL、フォームのプロパティ、モジュールのコード)を書き出し、テキストとして検索できるようにすると、調査の効率が大きく上がります。
よくある落とし穴
- フォームのコントロールに直接書かれた計算:テーブルには保存されず、画面と帳票にだけ表示される金額がある
- 更新・削除のクエリ:月末に手動で実行している更新クエリが、実は締めの処理の中心になっている
- リンクテーブル:別のAccessファイルやExcel、SQL Serverのデータを参照しており、移行の範囲が1ファイルで終わらない
- Excelとの行き来:VBAでExcelに書き出し、手で加工してから取り込み直す運用がある
- ドメイン集計関数:DLookupやDSumなどで、別のテーブルの値をその場で計算している
- 日付や丸めの扱い:端数の丸め方(四捨五入・切り捨て)が、場所によって違う
洗い出した結果の使い方
業務ルールの一覧は、新しいシステムの要件定義の材料になるだけでなく、移行後のテストの観点にもなります。一覧の各項目について、「新しいシステムで同じ結果になるか」をテストで確かめていけば、移行の漏れを防げます。
関連記事Accessからの移行方法|後継・移行先の選択肢と費用
関連記事Accessは使い続けて大丈夫?サポート・属人化リスクと対策
関連記事新旧システムの突き合わせテスト(並行稼働)の進め方|計算結果が合わないときの調べ方
よくある質問
- Accessのファイルにパスワードがかかっていて、中身を見られません。
- 作成者や、パスワードを管理している人を探すのが第一です。見つからない場合も、パスワードのかかっていない過去のバックアップや、データだけを別に保存したファイルが残っていないかを確認します。
- Accessの解析にはどのくらいの期間がかかりますか?
- オブジェクトの数とVBAの量によりますが、フォーム数十、クエリ百前後の規模で、2〜4週間が目安です。
- 移行先はAccessの画面と同じにしたほうがよいですか?
- 操作に慣れた社員の負担を考えて、主な画面の流れは近づけることが多いです。一方で、手作業で補っていた処理は、移行を機にシステムに取り込むと効果が大きくなります。
まとめ
Accessの業務ルールは、クエリ・フォーム・マクロ・VBA・テーブルの設定に分散しています。オブジェクトの一覧と依存関係を作り、使われていないものを除いてから、ルールを業務の言葉の一覧にしましょう。担当者との読み合わせで「なぜそうなっているか」を確かめれば、移行の要件定義とテストの土台になります。
この記事に関連するサービス
業務システム開発
顧客管理、案件管理、在庫管理、見積・請求など、社内業務を効率化するシステムを開発します。Excel・Access・紙で行っている業務を整理し、自社の業務の流れに合わせたシステムにし… サービスの詳細を見る



