以下では、「Accessファイル(.accdb/.mdb)の構造を理解する:拡張子とエンジンの話」をテーマに、Microsoft Accessで使用される代表的な拡張子や内部のエンジンについて解説します。Accessを使ったシステムを運用していると、「.mdbって古いの?.accdbは何が違うの?」と気になる場面が出てくるかもしれません。そこで本記事では、その歴史や特徴を把握し、正しくファイル形式やエンジンを選ぶ手助けをしていきます。
1. 拡張子.mdb と.accdb:ざっくり違いを把握しよう
1.1 .mdb 形式
- .mdb は Access 2003 以前の主なファイル形式で、Jetエンジンを使用
- 最大容量が 2GB(ただし運用上はもっと小さい規模推奨)
- ユーザーレベルセキュリティ(ULS)と呼ばれる仕組みをサポートしていた(複雑だったが)
- 新しいAccess(2007 以降)でも一部互換があるものの、一部機能(添付型フィールドなど)は使えない
特徴
- Access初期から長期間使われ、今でも社内に多数の.mdbが残っている場合がある
- 古いOfficeバージョンとの互換性を保つために継続運用するケースも多い
1.2 .accdb 形式
- .accdb は Access 2007 以降に採用された新ファイル形式で、ACEエンジンを使用
- 2GB制限は同じだが、拡張機能やセキュリティ・暗号化が強化
- 「添付型フィールド」「マルチ値フィールド」「リボンUI」など新しい機能に対応
- Access 2007以降のバージョンでの標準形式。今後のアップデートはこちらが基本
特徴
- Modernなエンジン&機能で、WindowsやOfficeの新バージョンにも整合的
- 古い.mdbファイルをコンバートできる(ただし完全移行時にはテストが必要)
2. そもそもAccessファイルには何が入っている?
Accessの1つのファイルには、以下のオブジェクトやデータがパッケージ化されています。
- テーブル: 実データ(行と列)
- クエリ: データ抽出や更新命令、SQL文など
- フォーム: ユーザー操作の画面UI
- レポート: 印刷・PDF出力用の帳票レイアウト
- マクロ: GUIベースの簡易自動化
- モジュール(VBA): 本格的なプログラミングロジック
.accdb/.mdb はこれらを一括で保管するコンテナ的役割を担い、さらにデータベースエンジン(JETまたはACE)を介して読書きします。
3. JetエンジンとACEエンジンの違い
3.1 Jet (Microsoft Jet Database Engine)
- Access初期(Access 1.0~2003)で採用
- .mdb形式を扱う
- Windowsの一部機能として提供され、ASP(クラシック)などの軽量DBとしても利用されてきた
- 大規模化や多人数同時アクセスには不向きと言われがち
制限・課題
- 2007以降、新機能には非対応(マルチ値フィールドなど)
- 開発が止まっており、セキュリティ面で今後の更新は期待できない
3.2 ACE (Access Connectivity Engine)
- Access 2007以降のエンジンで、.accdbを扱う
- Jetをベースに強化・改良され、新機能やセキュリティ面が拡充
- SharePointやSQL Server連携など、Office製品としての連携を見据えて進化中
メリット
- 新しいAccess機能(マルチ値フィールド、添付型フィールドなど)をフルに使える
- 暗号化やセキュリティ設定も強化され、現在もアップデートが続く
4. どちらを使う?互換性と選択基準
4.1 互換性の概念
- Access 2010以降でも、.mdbを開けることはできるが、一部機能(添付フィールドなど)は使えない
- 旧Access(2003以前)では、.accdbを開けない/編集できない
- 企業で古いバージョンと新バージョンが混在する場合は、.mdbで統一するケースもある
4.2 .accdbを推奨する理由
- Access 2007以降が標準になっている環境なら、.accdbを使うと新機能・強化された暗号化が利用できる
- Officeアップデートの波に乗るなら.accdbのほうが将来性が高い
- 一部レガシーアプリ以外は基本的に.mdbから移行すべき
5. 運用の注意:コンパクトと修復/ファイル分割
どちらの形式でも、以下の管理は変わりません。
- コンパクトと修復
- データの挿入・削除・更新で断片化が生じるため、ファイルが肥大化
- 定期的に「コンパクトと修復」を行い、容量・整合性を保つ
- 前後分割(フロントエンド/バックエンド)
- テーブルのみのファイル(バックエンド)と、フォーム・レポート・クエリ・マクロ・VBAを含む(フロントエンド)の2つに分割
- マルチユーザー環境でファイル破損やロック競合を防ぎやすい
- バージョン管理・バックアップ
- 2GB制限を意識し、バックアップをしっかり取る
- .accdb/.mdbとも同時編集に注意が必要
6. バージョンアップ時に気をつけること
- .mdb → .accdbへ変換
- メニュー[データベースの変換]や[名前を付けて保存]で変換できる
- ただしマクロやVBAの動作検証、レガシー機能(Uls) の扱いを要確認
- 参照ライブラリ
- 新しいOffice環境でAccessを起動すると、一部オブジェクトライブラリのバージョンが変わるかもしれない
- VBAで使用しているライブラリ(ADO/DAOなど)のバージョン設定を確認
- エラー対応・テスト
- 2003で動いていたフォームやクエリが2007以降でエラーになる場合もある
- 変換後は本番運用前に全機能テスト必須
7. まとめ:拡張子とエンジンの理解でスムーズなAccess運用を
- .mdb (Jetエンジン)
- Access 2003以前の標準形式
- ユーザーレベルセキュリティなど独自の特徴あり
- 現在のOfficeでは互換モードで開けるが、新機能は使えない
- .accdb (ACEエンジン)
- Access 2007以降の標準形式
- 添付型フィールドやマルチ値フィールドなど新機能対応
- 暗号化やセキュリティが強化され、クラウド/SharePoint等との連携も視野
おすすめの運用:
- 新規開発&最新Office環境 ⇒ .accdbで作成
- 旧システムが.mdb ⇒ 可能なら変換を検討し、新機能を活かす
- マルチユーザーや大容量になるならSQL Serverと連携も視野に
結局のところ、.accdbは今後のAccessの主流です。古い.mdbをやむを得ず使い続けている場合もありますが、機能拡張やセキュリティアップを考えるなら、.accdb + ACEエンジンへの移行を検討すると、より現代的で快適なAccess運用が可能になります。
関連記事
Accessを上手に使いこなすために、拡張子(.mdb/.accdb)の違いや内部エンジン(Jet/ACE) を知っておくと、バージョンアップやシステム拡張で戸惑うことが少なくなります。ぜひ本記事を参考に、最新形式を活かした安全・快適なAccessライフを築いてみてください。
ABOUT ME

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