概要
| この記事の結論 mdbは、Access 2007でaccdbが登場する前から使われてきたMicrosoft Accessのデータベースファイル形式です。1つのmdbの中に、テーブルだけでなくクエリ、フォーム、レポート、マクロ、VBAモジュールなどを保存できます。現在のAccessでもAccess 2000形式やAccess 2002-2003形式のmdbは通常利用できますが、Access 2.0や95など、さらに古い形式では中間バージョンを使った移行が必要になる場合があります。古いmdbを見つけても、まずはバックアップし、中身と依存関係を確認してから利用・変換を判断しましょう。 |
この記事でわかること
- mdbファイルとは何か、どのAccess世代で使われてきたか
- 1つのmdbの中にテーブル・フォーム・VBAなど何が保存されているか
- Access 2000、2002-2003、95などmdb形式の世代の違い
- Microsoft 365版AccessやAccess 2024でmdbを開くときの確認ポイント
- mdbをそのまま使うケースとaccdbへ変換した方がよいケース
- mdbが開けないときに確認したいVBA・OCX・参照設定・32bit/64bit等の原因
- 古いAccessを安全に調査・移行する手順
この記事の主な内容
1.Accessのmdbファイルとは?まず30秒で理解しよう
2.mdbファイルの中には何が入っている?Accessの仕組みを解説
3.mdbには複数のバージョンがある|現在のAccessで開ける形式は?
4.mdbファイルを現在のAccessで開く方法と確認ポイント
5.mdbはそのまま使える?accdbへ変換した方がよいケース
6.mdbファイルが開けない・動かない原因と古いAccessの移行方法
7.まとめ|mdbは「古いから変換」ではなく中身を確認して判断する
8.よくある質問(FAQ)
想定読了時間:約12~15分
1. Accessのmdbファイルとは?まず30秒で理解しよう
mdbは、Microsoft Accessで使用されてきたデータベースファイルの拡張子です。Access 2007で現在の標準形式であるaccdbが導入される以前は、Accessのデータベースは主に.mdb形式で保存されていました。
「mdb=データだけが入ったファイル」と考えられがちですが、Accessではデータを保存するテーブルだけでなく、検索や集計を行うクエリ、入力画面となるフォーム、帳票を作るレポート、マクロやVBAなどの処理も同じファイルへ保存できます。
| 一文で定義するとmdbとは、主にAccess 2003以前で標準的に利用されていた、Accessのデータ・画面・処理をまとめて保存できるデータベースファイル形式です。 |

mdbは「旧形式」だが、今も利用できるものがある
mdbは旧形式ですが、拡張子が古いという理由だけで現在のAccessから一律に利用できないわけではありません。Microsoftは、Access 2000形式とAccess 2002-2003形式のmdbについて、現在のAccessでも開いて通常どおり利用できると案内しています。
一方で、Access 2.0やAccess 95などさらに古いmdbは扱いが異なります。そのため、社内で古いmdbを見つけた場合は、ファイル名や作成年だけで判断せず、どの形式で作られたデータベースなのかを確認することが重要です。
2. mdbファイルの中には何が入っている?Accessの仕組みを解説
Accessの特徴は、データベースと業務画面・処理を1つのファイルにまとめられることです。mdbファイルも同様で、実際のデータだけでなく、利用者が操作するフォームや帳票、処理ロジックまで含んでいる場合があります。

| Accessオブジェクト | 役割 | mdb内での例 |
| テーブル | データを保存する | 顧客、商品、受注、社員など |
| クエリ | 抽出・集計・更新する | 顧客検索、売上集計、更新処理 |
| フォーム | 入力・検索画面を作る | 顧客登録、受注入力、検索画面 |
| レポート | 帳票・印刷物を作る | 請求書、一覧表、集計帳票 |
| マクロ | 操作を自動化する | 画面を開く、クエリ実行、帳票出力 |
| VBAモジュール | 複雑な処理を記述する | 入力チェック、共通処理、外部連携 |
「mdbを移す」だけでは業務移行が終わらない場合がある
例えば顧客管理.mdbを別のPCへコピーすると、ファイル自体は移動できます。しかし、そのmdbが外部ExcelやCSV、別のAccessファイル、SQL Server、特定フォルダの画像などを参照している場合、コピーだけでは正常に動作しないことがあります。
さらに、VBAからWindows APIや外部DLLを利用していたり、古いActiveXやOCXがフォームへ配置されていたりすると、新しいPCや64bit版Officeでエラーになる場合があります。mdbは「1ファイルだから単純」とは限らない点を理解しておきましょう。
フロントエンドとバックエンドに分割されているmdbもある
複数人でAccessを利用するシステムでは、画面やVBAを持つフロントエンドと、テーブルだけを持つバックエンドへファイルを分割する構成があります。その場合、手元のmdbだけを確認してもデータ本体が別ファイルにある可能性があります。
| 既存mdbを調査するときのポイント ナビゲーションウィンドウにテーブルが見えていても、それが実テーブルではなく「リンクテーブル」の場合があります。リンク先のmdb・accdb・SQL Server等も確認して初めて、システム全体の構成を把握できます。 |
3. mdbには複数のバージョンがある|現在のAccessで開ける形式は?
拡張子が同じ.mdbでも、Accessの世代によってファイル形式は異なります。特に古いシステムを引き継ぐ場合は、「mdbだからAccess 2003形式」と決めつけないことが重要です。

| 主な世代 | 拡張子 | 現在のAccessでの扱い | 実務上の注意 |
| Access 2000形式 | .mdb | 開いて通常利用可能 | 新機能はaccdbほど利用できない |
| Access 2002-2003形式 | .mdb | 開いて通常利用可能 | Access 2003以前との共有用途にも使われる |
| Access 97形式 | .mdb | 環境・移行手順に注意 | accdb変換前に旧Accessを介する場合がある |
| Access 95形式 | .mdb | 直接利用は難しい | 旧Accessを介して中間形式へ変換が必要な場合 |
| Access 2.0形式 | .mdb | 直接利用は難しい | Access 2007等を介した移行手順が必要な場合 |
現在のAccessで扱いやすいのはAccess 2000/2002-2003形式
Microsoftの現行案内では、Access 2000形式とAccess 2002-2003形式のmdbは、Microsoft 365版AccessやAccess 2024などの現在のAccessで開いて通常利用できます。もちろん、accdb専用機能は利用できませんが、mdbという理由だけで即座に変換が必要になるわけではありません。

Access 2.0やAccess 95は移行手順が異なる
さらに古いAccess 2.0やAccess 95のmdbは、現在のAccessへ直接すべてのオブジェクトを移せるとは限りません。Microsoftは、VBAを含むフォーム・レポート・モジュールを移す場合、Access 2000または2002-2003形式へ一度変換し、その後accdbへ移行する手順を案内しています。
つまり、「今のAccessでダブルクリックして開けない=ファイルが壊れている」とは限りません。単純にファイル形式が古すぎる可能性もあります。
4. mdbファイルを現在のAccessで開く方法と確認ポイント
古いmdbを見つけた場合は、最初に原本をバックアップし、コピーしたファイルで確認するのが安全です。特に業務で現在も使っているmdbは、いきなり「保存」や「変換」を行わず、まず現状を把握します。

具体的には下記の流れで確認頂けます。
| STEP | 作業 | 確認ポイント |
| 1 | 原本mdbをバックアップ | 日時付きでコピーし、元ファイルは変更しない |
| 2 | 現在のAccessを起動 | Microsoft 365 / Access 2024等で確認 |
| 3 | [ファイル]→[開く]からmdbを指定 | セキュリティ警告や変換メッセージを確認 |
| 4 | ナビゲーションウィンドウを確認 | テーブル・クエリ・フォーム等の構成を見る |
| 5 | 主要フォームを開く | 表示エラー、ActiveX、参照切れを確認 |
| 6 | VBAをコンパイル | 参照設定・API宣言等の問題を確認 |
| 7 | 外部連携を確認 | リンクテーブル、Excel、CSV、ODBC等を確認 |
セキュリティ警告が出ても、すぐ「すべて有効」にしない
出所が分からないmdbには、VBAやマクロが含まれている可能性があります。そのため、メール添付や不明な共有フォルダから入手したmdbは、内容を確認せずマクロやVBAを有効化しない方が安全です。社内ファイルであっても、作成者や用途を確認してから利用します。
5. mdbはそのまま使える?accdbへ変換した方がよいケース
現在のAccessでmdbを開けるからといって、必ずそのまま使い続けるべきとは限りません。一方で、旧形式だからという理由だけで即座にaccdbへ変換する必要もありません。利用環境と依存機能から判断します。

| 状況 | 判断の目安 | 理由 |
| 新規システムを作る | accdbを基本とする | 現在の標準形式で新機能を利用しやすい |
| mdbが現行Accessで安定稼働 | 急いで変換しなくてもよい | 業務停止リスクと改修費を考える |
| Access 2003以前とファイル共有 | mdbを残す場合がある | accdbはAccess 2007以前では開けない |
| 旧レプリケーションを使用 | mdb継続または再設計 | accdbはレプリケーション非対応 |
| 旧ユーザーレベルセキュリティを使用 | mdb継続または再設計 | accdbでは利用できない |
| 今後Microsoft 365へ統一 | accdb化を検討 | 将来保守・機能追加を考えやすい |
| データ量が2GBへ接近 | accdb化だけでは不足 | SQL Server等への移行を検討 |

mdbもaccdbも最大サイズは原則2GB
accdbは新しい形式ですが、Accessデータベースの最大ファイルサイズそのものが大幅に増えるわけではありません。Microsoftの現行仕様では、mdbとaccdbのデータベースファイル全体はいずれも2GBからシステムオブジェクトに必要な領域を差し引いた容量が上限です。
そのため、mdbの肥大化や2GB制限が課題の場合は、accdbへの変換だけでなく、テーブルをSQL ServerやAzure SQLへ移すアップサイジングを検討した方が根本的な解決になることがあります。
mdbからaccdbへの変換は「拡張子を書き換える」ことではない
変換する場合は、Accessでmdbを開き、[ファイル]→[名前を付けて保存]からAccessデータベース(accdb)としてコピーを作成します。Windows上でsample.mdbをsample.accdbへ名前変更するだけでは、内部のファイル形式は変換されません。

6. mdbファイルが開けない・動かない原因と古いAccessの移行方法
mdbが新しいPCで開けない場合、原因を「mdbという拡張子」だけに求めるのは適切ではありません。ファイル形式が古すぎる場合もあれば、VBA・ActiveX・OCX・外部接続など、Accessアプリケーション側の互換性が問題になっている場合もあります。

mdbと32bit・64bitは別の話
「mdbだから64bit版Accessでは動かない」という理解は正しくありません。Access 2000形式や2002-2003形式のmdb自体は現在のAccessで利用できます。問題になりやすいのは、mdb内部のVBAが32bit向けWindows APIを呼び出していたり、32bit専用ActiveXやOCXを利用していたりするケースです。

古いmdbを移行するときは「動くか」だけでなく「何に依存しているか」を確認する
古いAccessは、長年の改修で処理が追加されている場合があります。フォームが開いたからといって移行完了とは判断せず、検索、登録、更新、印刷、Excel出力、メール、CSV連携、SQL Serverリンクなど、実業務で使う一連の処理を確認します。

安全な古いAccess調査・移行フロー

| STEP | 作業 | 目的 |
| 1 | 原本をバックアップ | いつでも元へ戻せるようにする |
| 2 | mdbの世代を確認 | Access 2000/2002-2003/さらに古い形式を判定 |
| 3 | 構造を調査 | テーブル・フォーム・VBA・リンク等を把握 |
| 4 | 依存関係を確認 | OCX、API、ODBC、外部ファイル等を確認 |
| 5 | コピー環境で改修・変換 | accdb化や64bit対応を実施 |
| 6 | 業務シナリオでテスト | 入力・検索・更新・帳票・連携を確認 |
| 7 | 本番切替と記録 | 戻し手順・変更内容を残す |
| 実務視点 古いmdbの移行では、「ファイルが開くか」だけでなく、①mdbの世代、②データ保存場所、③VBA・ActiveX、④外部システムとの連携、⑤利用人数とデータ量、⑥将来のSQL Server化まで分けて確認すると、必要な改修範囲を判断しやすくなります。 |
7. まとめ|mdbは「古いから変換」ではなく中身を確認して判断する
mdbは、Access 2007以前から利用されてきたMicrosoft Accessのデータベースファイル形式です。1つのファイルにテーブル、クエリ、フォーム、レポート、マクロ、VBAなどを保存できるため、単なるデータファイルではなく、業務システムそのものになっているケースがあります。
現在のAccessでもAccess 2000形式やAccess 2002-2003形式のmdbは利用できます。一方、Access 2.0やAccess 95などさらに古い形式は移行方法が異なるため、開けないからといってファイル破損と決めつけないことが重要です。
また、mdbをaccdbへ変換しても、VBA、32bit・64bit、ActiveX・OCX、ODBC、外部ファイル等の問題が自動的に直るわけではありません。古いmdbを扱うときは、原本を残し、構造と依存関係を確認したうえで、そのまま利用するか、accdbへ変換するか、SQL Server等へ移行するかを判断しましょう。
| そのmdbファイル、中身や依存関係が分からないまま使い続けていませんか? 古いmdbのファイル形式、テーブル構造、フォーム・レポート、VBA、ActiveX・OCX、外部連携、32bit・64bitの依存関係を調査し、accdb化・64bit対応・SQL Serverアップサイジングまで支援していますのでお困りのことがありましたらお気軽にご相談ください。 |
よくある質問(FAQ)
Microsoft Accessで利用されてきたデータベースファイル形式です。主にAccess 2003以前で使われ、テーブル・フォーム・レポート・VBAなどを1つのファイルへ保存できます。
基本的にはMicrosoft Accessで開きます。現在のMicrosoft 365版AccessやAccess 2024でも、Access 2000形式やAccess 2002-2003形式のmdbを開いて利用できます。
ExcelはAccessのフォームやVBAを実行するアプリケーションではありません。データを取り込める場合はありますが、mdbをAccessシステムとして利用するにはAccessが基本です。
Access 2000形式やAccess 2002-2003形式のmdbは現在のAccessでも通常利用できます。さらに古い形式では変換手順が必要になる場合があります。
Access 2000形式・2002-2003形式であれば、現在のAccessで利用できるケースがあります。古いVBAやActiveX等は別途互換性確認が必要です。
いいえ。mdbには複数世代があり、Access 2.0やAccess 95などは直接利用が難しい場合があります。
現在のAccessへの移行では、環境や対象オブジェクトによって旧Accessを介した変換が必要になる場合があります。原本を残して事前確認してください。
Microsoftは、フォーム・レポート・VBAモジュールを含む場合、Access 2000または2002-2003形式へ一度変換してから、より新しい形式へ移行する方法を案内しています。
mdbは旧形式、accdbはAccess 2007以降の標準形式です。機能・旧Accessとの互換性などに違いがあります。詳しくは「Access mdbとaccdbの違い」の記事で解説します。
対応するmdbであれば、Accessで開いて[名前を付けて保存]からaccdb形式のコピーを作成できます。拡張子名を変更するだけでは変換になりません。
Microsoftの現行仕様では、Accessデータベースファイルの最大サイズは2GBからシステムオブジェクトに必要な領域を差し引いた容量です。
mdbという形式自体が危険という意味ではありません。ただし、VBAやマクロを含められるため、出所が不明なファイルはマクロを安易に有効化しないことが重要です。
必ずしもそうではありません。問題になりやすいのは、VBA API宣言や32bit専用ActiveX・OCXなど、ファイル内部の互換性です。
現行Accessで安定稼働し、旧機能や旧Accessとの互換性が必要なら継続利用できる場合があります。ただし、将来保守やOffice更新を考えて移行計画を持つことをおすすめします。
原本をバックアップし、mdbの世代、VBA参照設定、32bit・64bit、ActiveX・OCX、ODBC、外部ファイル、破損の有無を順番に確認します。
参考情報
Microsoft Support|Which Access file format should I use?
https://support.microsoft.com/en-us/access/which-access-file-format-should-i-use
Microsoft Support|Database basics
https://support.microsoft.com/en-us/access/database-basics
Microsoft Support|Learn the structure of an Access database
https://support.microsoft.com/en-us/access/learn-the-structure-of-an-access-database
Microsoft Support|Import Access 2.0 and Access 95 databases into current versions
https://support.microsoft.com/en-us/access/import-access-2-0-and-access-95-databases-into-current-versions
Microsoft Support|Convert a database to the .accdb file format
https://support.microsoft.com/en-us/access/convert-a-database-to-the-accdb-file-format
Microsoft Support|Access specifications
https://support.microsoft.com/en-us/access/access-specifications