概要
| この記事の結論 Accessから.NETへの移行は、データベース、画面、業務ロジック、帳票を分けて再構成する作業です。WindowsアプリとWebアプリでは設計も運用も異なります。VBAの文法変換だけで完了するとは考えず、既存業務の例外条件と更新単位を整理し、代表機能の試作から段階的に進めます。 |
この記事でわかること
- 画面方式を選ぶ
- 業務ルールを抽出
- データ移行を分離
- 帳票と更新を照合
この記事の主な内容
- Accessから.NETへ移す範囲を整理する
- WindowsアプリとWebアプリを選ぶ
- 既存資産を移行仕様にまとめる
- データと業務ロジックを再構成する
- 試作と比較検証を進める
- 費用と切替と保守を計画する
- よくある質問
想定読了時間:約8分
Accessから.NETへ移す範囲を整理する
Accessから.NETへの移行は、既存システムを構成するデータ、画面、業務ロジック、帳票を、それぞれ適切な技術へ組み直す作業です。VBAを別の言語に書き換えるだけでは、保存のタイミングや入力制御まで引き継げるとは限りません。
移行対象を4つの層に分ける
例えば受注登録では、フォームの入力制御、得意先の検索、明細金額の計算、ヘッダーと明細の保存、納品書の出力が関係します。一つのボタンの裏で複数の処理が動いているため、ボタン数やVBAの行数だけでは移行規模を判断できません。

| 移行対象 | 現行で調べること | 移行先で決めること |
|---|---|---|
| データ | 主キー、型、関連、保存場所 | DB、制約、移行方式 |
| 画面 | 入力順、検索、確定、取消 | 画面方式と操作設計 |
| 業務ロジック | 計算、採番、締め、例外 | 共通処理と実行場所 |
| 帳票 | 書式、改ページ、再発行 | 出力方式と印刷確認 |
移行対象を明確にすると、Accessに残す機能も判断できます。使用頻度の低い社内集計を当面残し、重要な更新機能から再構築する方法もあります。ただし、併用する期間と終了条件を決め、二つのシステムを無期限に保守する状態は避けます。
WindowsアプリとWebアプリを選ぶ
.NETを使う場合でも、Windowsで動くアプリとブラウザーで使うWebアプリでは、画面の作り方と配布方法が異なります。最初に利用端末、ネットワーク、印刷や周辺機器の要件を整理しましょう。
Windows FormsとASP.NET Coreの違い
Windows FormsはWindows向けのデスクトップ画面を作る仕組みです。既存のキーボード中心の入力や端末上の機器連携を重視する場合に候補になります。ただし、Accessのフォームをそのまま移せることを意味するものではありません。[Microsoft公式資料]
ASP.NET CoreはWebアプリやAPIなどを構築する仕組みです。ブラウザーから利用する構成では、サーバーでの認証・権限制御、通信失敗時の扱い、画面から送られた値の検証が重要になります。[Microsoft公式資料]

| 判断軸 | 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を併用するなら、共通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