以下では、「Accessファイル(.accdb/.mdb)の構造を理解する:拡張子とエンジンの話」をテーマに、Accessが使用するファイル形式や内部構造、データベースエンジンの進化について解説します。なぜ拡張子が「.mdb」から「.accdb」に変わったのか、従来のJetエンジンとACEエンジンの違いは何かを知っておくと、バージョン間の互換性や運用上のトラブルに対処しやすくなります。
1. Accessファイル形式の基本:.accdbと.mdb
1.1 .mdbとは?
- .mdb(Microsoft Database) は、Access 1.0(1992年)~Access 2003 までの標準ファイル形式
- Jetエンジンを使用し、内部にテーブル・クエリ・フォーム・レポート・マクロ等のオブジェクトをパッケージング
- Access 2003以前をメインに使う環境では、今もなお.mdb形式を運用している場合がある
特徴/制限
- 最大2GBまでのファイルサイズ (それ以上だと運用が難しく、リンクテーブルやSQL Server連携を考える)
- ユーザーレベルセキュリティ (User-Level Security) があったが、設定がやや複雑
- 新しいOfficeバージョンで編集するとき、古いバージョンとの互換問題が起こりやすい
1.2 .accdbとは?
- .accdb(Access Database) は、Access 2007以降で導入された新しいファイル形式
- ACEエンジン(Access Connectivity Engine) を使用
- .mdbから機能拡張が行われ、添付型フィールドやマルチ値フィールドなどの新機能が追加されている
- 同じ2GBファイルサイズ上限はあるが、共存する新機能が多いため、今のOffice環境では標準的に.accdbを使う
メリット/新機能
- 強化された暗号化(パスワード保護)
- 「マルチ値フィールド」「添付型フィールド」「リボンUI」など新しいAccess機能に対応
- SQL Server / SharePoint 連携の改善など
- 古い.mdbとの完全互換はないが、Access 2007以降の環境では.accdbが推奨
2. データベースエンジンの違い:Jet vs ACE
2.1 Jetエンジン(~Access 2003)
- JET (Joint Engine Technology) は、Access初期からのデータベースエンジンであり、.mdbファイルを扱う
- Windowsの一部として機能していたため、ASP(クラシック) などでOLE DB/DAOを経由して小規模データベースとして使われることが多かった
- 古い技術である一方、軽量で小規模DBには便利だった
制限/課題
- 新機能追加が止まっていき、Access 2007以降の要素をサポートしていない
- 多人数同時アクセスや大規模データにはパフォーマンス的な問題が出やすい
2.2 ACEエンジン(Access 2007~)
- ACE (Access Connectivity Engine) は、Access 2007以降で採用された新世代エンジン
- .accdb形式のファイルを扱い、マルチ値フィールドや添付型フィールドなど従来にはなかった機能に対応
- JETエンジンから進化しており、Excelとの連携などOffice全体のアーキテクチャに合わせてアップデートされている
メリット
- SQL ServerやSharePointと連動する機能が強化された
- 新しいAccessバージョンのUI/機能と整合的に動く
- セキュリティ改善:パスワード保護やファイル暗号化がアップデート
3. 旧形式(.mdb)と新形式(.accdb)での互換性と選択基準
- Accessのバージョン
- Access 2007以降なら、基本的に.accdbが推奨
- Access 2003やそれ以前と併用が必要な場合、.mdbを使うか中間ファイルを用意して互換性を保つ
- 新機能の使用有無
- マルチ値フィールドや添付型フィールド等、.accdb専用機能を使いたい→.accdbにしないと利用不可
- 旧形式(.mdb)では、ユーザーレベルセキュリティが必要という場合もある→ 旧形式を継続する選択肢も
- 運用環境と他システムの連携
- レガシーシステムが.mdbを前提にしている場合、安易に.accdbへ移行すると互換切れ
- 新規開発なら無理に古い形式に固執せず、.accdbを使うのが自然
4. .accdb/.mdbファイルの内部構造イメージ
Accessファイルは、OSのファイルシステム上に1つのファイルとして存在し、中には以下のオブジェクトが格納されています:
- テーブル: 実際のデータ。行(レコード)と列(フィールド)
- クエリ: データ抽出や集計のSQL設定
- フォーム: データ入力・編集・操作画面
- レポート: 帳票や印刷用レイアウト
- マクロ: GUIベースの自動化手順
- VBAコード(モジュール): プログラムロジック
.accdbや.mdbは、これらをひとまとめにしているコンテナのような存在です。
5. 運用上の注意:コンパクトと修復/分割の重要性
5.1 コンパクトと修復
- Accessファイルに更新や削除を行うと、ファイル内部に断片化が起きる
- 定期的に「ファイル→データベースの管理→[コンパクトと修復]」を実行して容量のムダを削除・再編成
- .accdb形式でも従来同様に2GBファイルサイズ上限はあるため、こまめにコンパクトすると安定運用しやすい
5.2 フロントエンド分割
- 多人数で同時アクセスする場合は、テーブルだけを格納したバックエンドファイル(accdb/mdb)と、フォーム・レポート・クエリなどを格納したフロントエンドファイルを分割して運用
- フロントエンドは各ユーザーのPCに配置し、リンクテーブルでバックエンドにアクセスする
- これによりファイル破損やロックのトラブルが減る
6. まとめ:拡張子とエンジンの理解でトラブルを回避しよう
- .mdb (Jetエンジン)
- Access 2003以前の標準ファイル形式
- ユーザーレベルセキュリティなど独自機能がある
- 新機能には非対応で、最新Officeとの互換に制限がある
- .accdb (ACEエンジン)
- Access 2007以降の標準形式
- マルチ値フィールドなどの新機能に対応
- 現在のOffice環境で推奨される方式
どちらの形式も1ファイルにテーブル・クエリ・フォーム・レポート・マクロ・VBAが格納されるが、.accdbは新しいACEエンジンに対応し、セキュリティや機能面が強化されている。
それでも運用面では、コンパクトと修復やファイル分割などの作法が必要です。
もし古い.mdbを運用している場合でも、Accessのバージョンが新しければ**.accdbへ変換**してより活発な機能を享受する選択肢を検討してみましょう。ファイル形式とエンジンの違いを理解しておくと、トラブルシュートやバージョンアップにも対応しやすくなります。
関連記事
以上がAccessファイル(.accdb/.mdb)の構造に関する概要です。拡張子とエンジンの歴史的経緯を掴み、現行バージョンで安定運用できる形を選んで、スムーズな開発とシステム維持に役立ててください。
ABOUT ME

入社した会社では、Accessを活用した基幹システムが長年運用されていました。しかし、開発者の高齢化により保守が困難となり、システムの維持・更新が急務に。
ほぼAccessに触れたことのなかった私は、ゼロから学びながら基幹システムを再構築してみることに。ついにはAccessによるシステム開発エンジニアとしてのスキルを身につけるまでに成長。
元々の業務のノウハウとそれを効率化するためのツール(Access)によって業務効率化システムをいくつも開発してきました。
みなさんの”なにか(業務のノウハウ)”とAccessで業務効率化を実現するお役に立てれば幸いです。
月30万の高配当投資も行っています。最新の銘柄情報もお届けしていきます。