破損したAccessデータベースの修復方法 Microsoft社発表文書コピペ
メニューに戻る

[ACC2000]破壊したデータベースの修復方法

文書番号 : 209137
最終更新日 : 2004年9月6日
リビジョン : 1.1
この記事は、以前は次の ID で公開されていました: JP209137

概要

この資料は、Microsoft Access データベース (.mdb) のみを対象としています。

この資料は、ユーティリティの使用方法、および破壊したデータベース ファイルを復旧するための方法について説明しています。

現象

停電や電力不安定などの環境的要素、Access データベースの不適切な方法での終了、ディスクやネットワークの障害などによりデータベース ファイルが破損した状態になる場合があります。また、Access データベースの使用中に生じた空き領域が蓄積され、それが原因で破損につながる場合もあります。Access の修復ユーティリティと最適化ユーティリティは、このようなデータベースの最適化、修復を試みるツールです。以下に、これらのユーティリティの使用方法、および破壊したデータベース ファイルを復旧するためのその他の方法について説明いたします。

詳細

この資料で解説されている手順により、破壊したデータベース ファイルへの修復は通常正常に行われますが、データベースの破壊の度合いによっては修復不可能な場合があります。データを保護するために、できるだけ頻繁にデータベース ファイルのバックアップを作成してください。なお、MDB ファイルのバックアップとはファイル バックアップになります。

最適化ユーティリティと修復ユーティリティ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
最適化ユーティリティは、既存のデータベースにある空の領域を取り除きます。この作業は、新たなデータベースを作成し、古いデータベース内の各オブジェクトを新しいデータベースにコピーすることによって行われます。データベースを新しいデータベースではなく元のデータベース名に最適化することを選択した場合、最適化ユーティリティは一時的なデータベースを作成し、すべてのオブジェクトを元のデータベースから一時データベースにエクスポートし、元のデータベースを削除して、一時データベースの名前を元のデータベースの名前に変更します。

修復ユーティリティは、データベース内の、テーブル、クエリー、インデックスのみの修復を試みようとします。破損したフォーム、レポート、マクロ、モジュールなどは修復しません。

解決方法

1. 破壊しているデータベース ファイル (mdb ファイル) のバック アップを行います。
2. ldb ファイルが存在する場合は、それを削除します。このファイルは、対応する mdb ファイルを閉じてから削除してください。

ldb ファイルは共有データベースでどのレコードが誰によってロックされているかを特定するために使用されます。データベースが共有で使用される場合、ldb ファイルが対応するデータベース (mdb ファイル) と同じ名前で作成されます。たとえば、C:\Msoffice\Access フォルダで Northwind.mdb サンプル データベースを使用する場合 Northwind.ldb というファイルが同じフォルダに自動的に作成されます。Microsoft Access 2000 では、最後のユーザーが作業を終了後に ldb ファイルは自動的に削除されます。ただし、例外が 2 つあります。最後のユーザーが、mdb ファイルを含むフォルダに対して削除権限を持っていない場合と、データベースが破損している場合です。
3. 最適化ユーティリティおよび修復ユーティリティを実行します。
a. データベースが開いている場合は、閉じます。
b. [ツール] メニューから [データベース ユーティリティ] をポイントし、[最適化/修復] をクリックします。
c. [最適化元データベース] ダイアログ ボックスで、最適化したいファイルを選択し、[最適化] をクリックします。
d. [最適化先データベース] ダイアログ ボックスで、新しいファイル名を入力し、[保存] をクリックします。


修復が成功しなかった場合は、それを示すメッセージが表示されます。これは、テーブル、クエリー、インデックスの損傷が修正不可能なほどに深刻であるか、または破損が、修復ユーティリティが対応できないオブジェクトであることを意味します。

Access 2000 では、Access データベースの最適化と修復が統合され、単一の処理になりました。ただし、Access プロジェクトについては、最適化だけが可能です。Access プロジェクトを修復することはできません。
4. ここまでの手順で、破壊したデータベースが回復できない場合は、新規のデータベースを作成して、古いデータベースから新しいデータベースへ、オブジェクトを 1 つずつすべてインポートしてみてください。次にリレーションシップを再作成します。この方法により、データベース内の破損したシステム テーブルの問題が解決されます。

インポート ウィザードでデータ アクセス ページをインポートすることはできません。既存のデータ アクセス ページを新規データベースで開いてください。この操作を行うための手順は以下のとおりです。
a. [データベース] ウィンドウで、[オブジェクト] の [ページ] をクリックします。
b. [新規作成] ボタンをクリックします。
c. [データ アクセス ページの新規作成] ダイアログ ボックスで、[既存の Webページ] をクリックし、[OK] をクリックします。
d. 該当の Web ページを選択して、[OK] をクリックします。
5. 破損がフォームまたはレポートにある場合、破損個所はフォームまたはレポート自体かあるいはフォームまたはレポート上のコントロールにあります。該当するフォームまたはレポートを削除してデータベースのバックアップ コピーからインポートするか、または以下のいずれかの方法をお試しください。

- 破損がフォームまたはレポート自体にある場合は、新たなフォームまたはレポートを作成し、元のフォームまたはレポートからコントロールをコピーします。

- 破損がフォームまたはレポートのコントロールにある場合は、新たなフォームまたはレポートを作成し、新規のフォームまたはレポートの上にコントロールを作成し直します。どのコントロールが破損しているかを見分ける方法はありません。すべてのコントロールを作成し直すことをおすすめいたします。
6. 破損がマクロまたはモジュールにある場合、破損はマクロまたはモジュール自体か、あるいはマクロまたはモジュールの内容にあります。マクロまたはモジュールを削除してデータベースのバックアップ コピーからインポートするか、または以下のいずれかの方法をお試しください。

- 破損がマクロまたはモジュール自体にある場合は、新たなマクロまたはモジュールを作成し、元のマクロまたはモジュールの内容をコピーします。

- 破損には、モジュールに埋め込まれている ASCII 以外の文字が関連している可能性があります。該当するモジュールをテキスト ファイルとして保存し、不良または不審なデータを削除して、テキスト ファイルを新しいモジュールに貼り付けて新規に作成し直してください。

- 破損がマクロまたはモジュールの内容にある場合は、新たなマクロまたはモジュールを作成し、元のマクロまたはモジュールの内容を作成し直してください。


また、MDB ファイルが開けない場合などは、Jetcomp ユーティリティをダウンロードして使用することを検討してください。Jetcomp ユーティリティを使用することにより、他の方法では回復不可能なデータベースを修復できる場合があります。Jetcomp ユーティリティの入手方法については、以下のサポート技術情報を参照して下さい。
US KB ID : 273956
US TITLE : ACC2000: Jet Compact Utility Available in Download Center


これまでの手順でデータベースが修復できない場合は、データベースが修復できないほど破壊していると考えられます。その場合は、最後のファイルバックアップから復元するかまたはデータベースを作成し直してください。

関連情報

ldb ファイルの詳細については、米国 Microsoft Corporation から提供している以下のKnowledge Base をご参照ください。
文書番号 : 208778
タイトル : ACC2000: 2nd - Introduction to .ldb Files

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 209137 (最終更新日 2001-11-09) をもとに作成したものです。

Area: Core

この資料は以下の製品について記述したものです。
? Microsoft Access 2000 Standard Edition