この記事で分かること
- 作成者不明のAccessが抱える潜在的な業務リスク
- 専門会社による外注調査で明らかになる4つの具体的な内部情報
- 解析・調査を外注するメリット・デメリットと実際の解決プロセス
誰が作ったか分からない「野良Access」がもたらす業務リスク
社内で長年にわたり引き継がれ、構築した本人がすでに退職・異動してしまったデータベースは、いわゆる「野良Access」として現場の深刻な懸念材料となります。ドキュメントや仕様書が一切残されていないことが多く、何とか動作しているものの、いつ動作を停止してもおかしくない爆弾を抱えているような状態です。
このような作成者不明のAccessを放置し続けると、主に以下のような3つの業務リスクが発生します。
- OSやMicrosoft 365のアップデートに伴う突然の強制終了: AccessはOffice製品の一部であるため、自動更新によってVBA(Visual Basic for Applications)のコードや参照設定が非推奨となり、昨日まで動いていたシステムが朝一番で突然エラーを起こす事例が頻発しています。
- データ量増加に伴うパフォーマンスの低下とファイル破損: Accessはファイル容量の上限が「2GB」に制限されています。作成者が不明なシステムでは、古い不要データがクレンジングされずに蓄積し続け、制限容量に達した瞬間にファイル自体が破損し、過去の顧客情報や売上履歴がすべて消失する恐れがあります。
- セキュリティの脆弱性と情報漏洩リスク: 作成された古い時代のセキュリティ設定のまま放置されている場合、データベースが暗号化されていなかったり、容易に外部へデータをエクスポートできる状態になっていたりします。これにより、企業のガバナンス低下や顧客情報の漏洩といった致命的なトラブルへ発展しかねません。
このように、中身の構造や動作ロジックが誰にも分からない状態での運用は、日常の業務継続を常に脅かす大きな要因となります。
作成者不明のAccessを専門会社へ外注調査に出すと判明する「4つの情報」
自社で中身を解析できないAccessであっても、データベース開発やシステム修復の専門会社へ調査・解析を依頼することで、これまで不透明だったシステムの「骨組み」と「健康状態」が明らかになります。具体的には、外注調査によって以下の4つの情報が明確なレポートとして可視化されます。
| 調査項目 | 具体的に判明する内容 | もたらされる効果 |
|---|---|---|
| 1. データベースの物理構造と関連性 | 格納されているテーブルの構成、各テーブル同士のリレーションシップ(結合関係)、不要な重複データの有無を特定。 | データの格納ルールが明確になり、構造の整理やクレンジングが可能になる。 |
| 2. 画面と帳票の動作ロジック | 入力フォームのボタンに仕組まれたマクロ、出力されるレポート(帳票)の元となるクエリ(SQL文)の抽出条件を解析。 | どの画面でどのデータが処理され、どのように集計されているのかの設計図が復元できる。 |
| 3. VBAコードの記述内容と外部連携 | 記述されたプログラム(VBA)のソースコードを読み解き、古い関数や外部サーバーへの接続設定、特定の共有フォルダへの依存ファイルをリストアップ。 | エラーを多発させている原因コードや、ハードコーディングされた古いパスを特定し、不具合を解消できる。 |
| 4. 将来的な刷新・移行の適合性 | 現在のAccessがSQL ServerやWebシステムなどの上位プラットフォームへそのまま移行可能か、データ型の適合性やプログラムの移植性を診断。 | 単なる延命処置にとどまらず、将来的なDX(デジタルトランスフォーメーション)のロードマップが描ける。 |
自社でコードを解読しようとすると、他の業務を抱えた担当者が何日も拘束されることになりますが、解析の専門ツールと知見を持つ外注先であれば、数日から数週間でシステム全体の「相関マップ(設計書に準ずるもの)」を作成することが可能です。
外注にAccessの解析・調査を依頼するメリットとデメリット
自社のブラックボックス化したシステムを外注調査に出すことは多くの利点がありますが、一方でコストや特定の制約といったデメリットも存在します。導入を決定する前に、これらを論理的に対比して検討することが重要です。
外注調査を依頼するメリット
- 社内リソースの完全な保護: 専門外の自社スタッフが手探りでコードを解析する膨大な時間と人件費を削減できます。通常業務に支障をきたすことなく、確実な解析結果を得られます。
- 技術的負債(潜在バグ)の早期発見: 「エラーは出ていないが、実はデータが正しく整合していない」といった、運用上気づきにくいプログラムの不具合や、セキュリティホールを事前に発見して対処できます。
- 今後の判断基準(改修か刷新か)の明確化: システムの残命期間や、クラウド化・Web化へ移行する際の見積もりを正確に算出するための「根拠データ」が手に入ります。
外注調査を依頼するデメリット
- 初期費用(調査費用)が必ず発生する: 調査そのものは成果物の作成(報告書など)を伴う技術作業であるため、その後の改修工事を行わない場合でも、解析費用が発生します。
- 暗号化やパスワードロックの解除における制限: 前開発者がVBAプロジェクトに強力なパスワードをかけている場合、解除に特別な手続きや追加料金が必要になるケースや、最悪の場合はソースコードの一部が直接閲覧できないリスクがあります。
- 調査だけではシステムは直らない: 外注調査はあくまで「現状の可視化」です。エラーを解消したり新機能を追加したりするには、調査結果を踏まえた上で、別途「改修・修復」の工程と費用が必要になります。
このように、コストは発生するものの、現状を客観的かつ技術的に把握することで、無駄な改修コストの発生を防ぎ、将来的なシステム投資の失敗を回避できるという大きなメリットがあります。
【事例】仕様書なし・エラー頻発のAccessを外注調査で復活させたプロセス
ここでは、実際に作成者不明のデータベーストラブルに直面した企業の事例をもとに、外注調査からシステムが復活するまでの具体的なステップを紹介します。
【背景と課題】
ある中堅製造業では、約10年前に退職した社員がAccessで構築した「製品検査・在庫管理システム」を使用していました。マニュアルや仕様書は一切なく、Officeのバージョンアップが行われたタイミングで、特定の検索処理を行うと「実行時エラー ‘3075’」が発生してフリーズする現象が多発。業務がたびたび中断し、現場から悲鳴が上がっていました。
【解決への5つのステップ】
-
ステップ1:現状ヒアリングとデータ送付
同社は、Access修復の実績が豊富な外部のシステム開発会社へ連絡。現在のエラー内容と、該当するAccessファイル(フロントエンドとバックエンドに分かれたMDBファイル)を機密保持契約(NDA)の締結後に送付しました。 -
ステップ2:外注先による内部構造・コード解析
外注先のエンジニアがソースコードおよびクエリを解析。古いバージョンのWindows APIを参照している箇所や、廃止されたDAO(Data Access Objects)の構文が、エラーの原因となっていることを特定しました。また、社内サーバーの特定の絶対パスがソースコード内に直接書き込まれている(ハードコーディング)ことも分かりました。 -
ステップ3:調査報告とロードマップの提示
調査開始から2週間後、外注先より詳細な「システム解析報告書」が提出されました。報告書には、エラーの原因、データベースのテーブルリレーション図、今後の改修に必要な見積もりと期間が論理的に提示されました。 -
ステップ4:エラー原因のピンポイント改修とテスト
提示された報告書をもとに、まずは業務に直結しているエラー原因のプログラム修正を依頼。APIの参照先を最新の64bit環境に適した記述へと書き換え、絶対パスを相対パスへ変更する処理を実施しました。その後、開発環境と実環境での動作テストを入念に行いました。 -
ステップ5:運用の引き継ぎと今後の保守体制構築
改修が完了したAccessは、エラーが完全に解消されて安定稼働を取り戻しました。また、今回の外注調査によって成果物として納品された簡易設計書があるため、今後再度トラブルが起きても、いつでも同じ外注先や別の開発者へ迅速に改修を依頼できる体制が整いました。
この事例のように、一見「ゴミ箱に捨てるしかない」と思われたブラックボックスシステムでも、適切な外注調査を経ることで、最小限のコストで現役のシステムとして復活させることが可能です。
外注調査をスムーズに進めるために事前に準備すべきこと
外部の専門ベンダーにAccessの調査を依頼する際、事前に社内で情報を整理し、データを用意しておくことで、見積もり額を抑え、調査期間を大幅に短縮することができます。準備しておくべき主な項目は以下の4点です。
- 対象のAccessファイル一式: システムが「フロントエンド(画面やプログラム)」と「バックエンド(データ格納用テーブル)」に分割されている場合は、必ず両方のファイルをセットで準備してください。また、ExcelやCSVなどからデータをインポートしている場合は、それらの元ファイルも必要です。
- 発生しているエラーの画面キャプチャ: エラーが表示された際、ダイアログボックスに記載されているエラーコード(例:「実行時エラー 91」など)や、その瞬間の画面全体のスクリーンショットを保存しておきます。
- 具体的な操作手順: 「どの画面の、どのボタンを押したときに」「どのようなデータを入力すると」トラブルが発生するのか、普段の操作の流れをテキストでまとめておきます。
- 各種パスワード情報: 起動時に入力を求められるデータベースパスワードや、VBAのソースコードを保護するための管理者パスワードで、現在判明しているものがあればすべてリストアップしておきます。
これらの情報が事前に揃っているほど、エンジニアがコードの解析に着手しやすくなり、手戻りのないスムーズな調査が可能になります。
Q&A(FAQ)
VBAのプログラムにパスワード(プロテクト)がかかっていますが、調査できますか?
はい、調査可能です。多くの専門会社では、適切な手続きと所有権の確認が取れれば、ロックを解除した上で内部解析を行う技術やノウハウを持っています。ただし、追加の手続きや追加費用が発生する場合があるため、事前に現状を外注先へご相談ください。
調査を依頼してから、結果の報告書を受け取るまでにどのくらいの期間がかかりますか?
システムの規模やファイルの数によって異なりますが、一般的な小〜中規模のAccess(テーブル数が20〜50個程度、VBAコードが数千行レベル)であれば、通常はおおむね「1週間から3週間程度」で解析結果の報告書を提出することが可能です。
調査報告書を受け取った後、改修は自社のスタッフで行っても良いですか?
もちろん可能です。納品された調査報告書にはシステムの論理構造や不具合の原因が整理されているため、それをもとに社内のITスキルを持つエンジニアが改修作業を行うことができます。調査だけを外注し、実際の工事は自社で行うという切り分けも、コスト削減として有効な手段です。
拡張子が「.mdb」の非常に古いAccess形式ですが、調査や解析は可能ですか?
可能です。Access 2003以前の標準形式である「.mdb」ファイルであっても、内部のテーブル構造やVBAの解析を行うことは技術的に十分可能です。現在の「.accdb」形式への変換可否も含めて診断してもらえるケースが多いです。