Accessから.NETへ移行する方法と再設計の進め方

概要

この記事の結論
Accessから.NETへの移行は、データベース、画面、業務ロジック、帳票を分けて再構成する作業です。WindowsアプリとWebアプリでは設計も運用も異なります。VBAの文法変換だけで完了するとは考えず、既存業務の例外条件と更新単位を整理し、代表機能の試作から段階的に進めます。

この記事でわかること

  • 画面方式を選ぶ
  • 業務ルールを抽出
  • データ移行を分離
  • 帳票と更新を照合

この記事の主な内容

  1. Accessから.NETへ移す範囲を整理する
  2. WindowsアプリとWebアプリを選ぶ
  3. 既存資産を移行仕様にまとめる
  4. データと業務ロジックを再構成する
  5. 試作と比較検証を進める
  6. 費用と切替と保守を計画する
  7. よくある質問

想定読了時間:約8分


Accessから.NETへ移す範囲を整理する

Accessから.NETへの移行は、既存システムを構成するデータ、画面、業務ロジック、帳票を、それぞれ適切な技術へ組み直す作業です。VBAを別の言語に書き換えるだけでは、保存のタイミングや入力制御まで引き継げるとは限りません。

移行対象を4つの層に分ける

例えば受注登録では、フォームの入力制御、得意先の検索、明細金額の計算、ヘッダーと明細の保存、納品書の出力が関係します。一つのボタンの裏で複数の処理が動いているため、ボタン数やVBAの行数だけでは移行規模を判断できません。

Accessから.NETへの移行対象をデータ、画面、業務ロジック、帳票に分けた整理
移行対象現行で調べること移行先で決めること
データ主キー、型、関連、保存場所DB、制約、移行方式
画面入力順、検索、確定、取消画面方式と操作設計
業務ロジック計算、採番、締め、例外共通処理と実行場所
帳票書式、改ページ、再発行出力方式と印刷確認

移行対象を明確にすると、Accessに残す機能も判断できます。使用頻度の低い社内集計を当面残し、重要な更新機能から再構築する方法もあります。ただし、併用する期間と終了条件を決め、二つのシステムを無期限に保守する状態は避けます。


WindowsアプリとWebアプリを選ぶ

.NETを使う場合でも、Windowsで動くアプリとブラウザーで使うWebアプリでは、画面の作り方と配布方法が異なります。最初に利用端末、ネットワーク、印刷や周辺機器の要件を整理しましょう。

Windows FormsとASP.NET Coreの違い

Windows FormsはWindows向けのデスクトップ画面を作る仕組みです。既存のキーボード中心の入力や端末上の機器連携を重視する場合に候補になります。ただし、Accessのフォームをそのまま移せることを意味するものではありません。[Microsoft公式資料]

ASP.NET CoreはWebアプリやAPIなどを構築する仕組みです。ブラウザーから利用する構成では、サーバーでの認証・権限制御、通信失敗時の扱い、画面から送られた値の検証が重要になります。[Microsoft公式資料]

Windowsで動く.NETアプリとブラウザーで使うWebアプリの選択
判断軸WindowsアプリWebアプリ
利用環境Windows端末を前提に検討対象ブラウザーと端末を検証
配布端末への導入と更新が必要サーバー更新と互換性を管理
機器と印刷端末機能との連携を設計ブラウザーの制約を確認
通信停止オフライン要件を個別設計再接続と再送の扱いを設計

新規構築で採用する.NETのバージョンは、実装開始時点のサポート期間と利用ライブラリの対応を確認して決めます。既存環境が.NET Frameworkを使っている場合も、名称が似ているという理由だけで現行.NETとの互換性を判断しません。


既存資産を移行仕様にまとめる

移行仕様は、画面の見た目だけでなく、入力から保存、出力までの振る舞いを説明する必要があります。現行ソースがある場合は、フォームイベント、標準モジュール、クエリ、外部ファイルを横断して調べます。

イベントと例外条件を抽出する

例えば入力後イベントで値を補完し、保存前イベントで警告を出している場合、画面の項目一覧だけでは業務ルールが分かりません。どの操作が処理のきっかけになるか、取消時に何が保存されるかを記録します。

仕様書がないときは、担当者に通常の入力だけでなく、返品、訂正、締め後修正、再発行なども操作してもらいます。「以前からそうしている」という運用に、計算方法や権限の例外が隠れていることがあります。

整理する項目記録例確認方法
入力条件空欄、0、負数を許可するか画面操作とコード
計算条件端数処理と税率の適用時点帳票と保存値の比較
確定単位受注と明細をまとめて保存異常終了時の確認
訂正確定済みデータの修正方法利用者の業務手順
連携出力先とファイル仕様実ファイルの照合

データと業務ロジックを再構成する

データ移行と画面の作り直しは別工程として計画します。Access内のテーブルをSQL Serverへ移す場合、SSMAを利用できる範囲はありますが、フォーム、レポート、マクロ、VBAを.NETへ変換するツールではありません。[Microsoft公式資料]

トランザクションと競合を設計する

トランザクションは、関連する更新をまとめて確定または取り消す単位です。受注ヘッダーだけ保存されて明細が欠ける状態を避けるには、保存対象と異常時の取り消し範囲を明確にします。

入力画面でチェックしていても、更新処理側でも必要な値と権限を検証します。画面を通さない呼び出しや、古い画面から送られた要求にも対応するためです。DBには主キー、一意制約、参照整合性など、データそのものを守る条件を設定します。

入力検証、権限、トランザクション、同時更新競合を考えた設計

同じデータを複数人が更新する場合には競合検知を設けます。EF Coreには同時実行トークンなどを使った楽観的同時実行制御があり、競合時は例外処理が必要です。競合を検出した後、再読み込みするか、差分を提示するかという画面の動作まで決めます。[Microsoft公式資料]

また、Nullと空文字、日付の時刻部分、金額の丸め、文字列比較などは、新旧で結果が変わりやすい項目です。旧システムの不具合まで無条件に再現せず、差異を仕様として直す場合は利用部門と合意して記録します。

Accessから.NETへ移行する方法の進め方に迷ったら

既存の画面や帳票をどこまで残せるか、接続や外部連携をどこから調べるべきか。依存関係が多い場合は、現状調査から進めると移行・改修の範囲を判断しやすくなります。お気軽に現在の構成と困っている業務をご相談ください。


試作と比較検証を進める

試作では、検索して表示できることだけでなく、保存、帳票、例外処理まで一つの業務を通します。その結果から共通部品と開発方式を決めると、後から全画面を作り直すリスクを減らせます。

帳票と境界値を比較する

テスト用データには、通常値に加え、未入力、0、上限付近、長い名称、複数明細、月末日を含めます。金額計算は表示上の丸めだけでなく、保存値と集計値を比較してください。

検証領域照合する内容合格基準の例
データ件数、キー、金額、関連合意した差異以外は一致
操作入力、保存、取消、訂正業務手順が完了できる
帳票集計、改ページ、印刷必要項目と金額が一致
競合同時編集と保存意図しない上書きを防ぐ
復旧通信切断と再実行重複や欠落を発見・復旧できる

性能が課題の場合は、移行前後で同じデータ量と条件を使います。.NETに変えただけで必ず高速化するわけではありません。SQL、索引、取得件数、ネットワーク往復、画面描画のどこに時間がかかるかを測定して改善します。


費用と切替と保守を計画する

移行費用は、調査、再設計、実装、データ移行、帳票、連携、テスト、導入支援に分けて見積もります。特に元の仕様が不明な場合と、正確な印刷が必要な場合は、画面数以外の調査・検証工数を見込む必要があります。

段階移行と責任分担を決める

1. 現行資産を調べ、必要な機能と廃止できる機能を区別します。
2. 難易度の高い代表機能を試作し、方式と費用の前提を確かめます。
3. 共通ルールに沿って順次再構築し、データ移行を準備します。
4. 新旧の結果を照合し、業務担当者の確認を行います。
5. 本番を切り替え、監視と問い合わせ対応を引き継ぎます。

Accessから.NETへの調査、試作、再構築、照合、運用移行の5段階

Accessと.NETを併用するなら、共通DBの同じ項目をどちらが更新するかを決めます。切り戻し時は新側の更新を保全し、旧アプリと変更後のDBに互換性があるかを確認します。配布ファイルだけを戻す計画では不十分な場合があります。

納品対象には、ソース、ビルド手順、設定、DB定義、テスト結果、バックアップと復旧手順を含めます。既存の属人化を解消するための移行であれば、新しい技術でも一人しか保守できない状態にならないよう、引継ぎまで計画します。


よくある質問(FAQ)

完成するとは限りません。画面イベント、データ保存、帳票、外部部品など、言語の文法以外の依存があるためです。業務ルールを整理し、新環境での動作を検証します。

技術的にすべての案件で必須とは限りません。ただし、ファイルDBを残す構成では、容量、同時更新、配布と接続の条件が残ります。画面方式と運用要件に合わせてDBを選びます。

Accessの帳票を.NETでそのまま編集・実行する前提にはしません。帳票基盤の選定や作り直しが必要です。移行期間中にAccess帳票を残す場合は、実行環境と終了条件を決めます。

必ず速くなるわけではありません。取得件数、SQL、索引、ネットワーク往復、画面の描画処理などが性能を左右します。同じ条件で測定し、ボトルネックを改善します。

可能な構成があります。共通DBを使う場合は、更新する項目と処理の責任を定義し、新旧で採番や計算の規則が食い違わないようにします。

Accessから.NETへ移行する方法の進め方に迷ったら

既存の画面や帳票をどこまで残せるか、接続や外部連携をどこから調べるべきか。依存関係が多い場合は、現状調査から進めると移行・改修の範囲を判断しやすくなります。お気軽に現在の構成と困っている業務をご相談ください。


参考情報

Microsoft:Windows Forms Overview

Microsoft:Overview of ASP.NET Core

Microsoft:Handling Concurrency Conflicts

Microsoft:Migrate an Access database to SQL Server

TOP