第4回 ACCESS トラブル対処の情報1「mdbが壊れてしまった時」

私の経験ですが、ACCESSでデータベースシステムを作成し始めて、1年くらい、書籍を沢山買い込んで勉強しましたが、書籍になかなか記載されていない問題にぶつかり、困った時期がありました。

そこで、今回は、私のつたない経験から覚えた「トラブルの対処方法」を記載します。

「ACCESS 2000で壊れてしまったmdbファイルを修復する方法」です。

本当に、壊れます (こう書くと、使う人がいなくなるのが怖い?)。
ACCESSというソフトのコンポーネンツを使いデータべース処理システムを構築しているせいだと思いますが、Access が正常に終了しない場合や、HDDやネットワークの障害などにより、データベース ファイルが破損してしまう場合があります(Jetエンジンの絡みの問題もありますが、それは別途、記載します)。

修復する方法は下記の2つです。
1.データベース ユーティリティで修復する。
2.新規データベースにインポートして修復する。
まずいと認識できたら、まず項番1を実施、ダメなら項番2を実施して修復を試みて下さい。

注意事項
これから説明する方法は、壊れたファイルや予期しない動作をするファイルの正常な回復を保証するものではありません。 状態によっては、データを修復できず、ファイルを作成し直さなければならない場合があります。

Sponsored Links




1.データベース ユーティリティで修復するには

最適化/修復ユーティリティが付いていますので、これを使用するとファイルを修復できる可能性があります。

1) 壊れているファイルを別のドライブやフォルダにバックアップします。

2)「 .ldb」 ファイルが存在する場合は、削除します。
格納場所のmdb ファイルと同じ名前の ldb ファイルが存在する場合は削除します。
対応する mdb ファイルを開いている場合は、閉じてから ldb ファイル削除します。

補足説明
ldb ファイルは共有データベースでどのレコードが誰によってロックされているかを特定するためのファイルです。mdbを終了させるとldb ファイルは自動的に削除されますが、データベースが破損していると、自動的に消えず、残ってしまう場合があります。

3)データベースを閉じます。

4)「最適化元データベース」 ダイアログ ボックスを表示します。
メニューバーの「ツール」の「データベース ユーティリティ」の「最適化/修復」 をクリックします。

5) 修復するファイルを選択します。
修復するファイルを選択し、「最適化」 をクリックします。

6) ファイルを保存します。
ファイルダイアログの「保存先」 ボックスの一覧から保存場所を選択し、「ファイル名」に任意のファイル名を入力し、「保存」 をクリックします。

7) 修復されたファイルが保存されます。

これで、保存されたファイルを開いて修復されているかチェックします。

2.新規データベースにインポートして修復するには

新規で空のデータベースを作成して、壊れたmdbのオブジェクト(フォーム、レポート処理やデータ等)をインポート機能を使用してCOPYします。
これだけで正常に動作する場合もありますが、ダメな場合は、項番8)以降の対処も実施して下さい。

1) 作業ウィンドウを表示。
メニューバーの「ファイル」 の「新規作成」 をクリックします。

2)「新しいデータベース」ダイアログ ボックスを表示します。
「新規」 の「空のデータベース」 をクリックします。

3)ファイルを保存します。
「保存先」 ボックスの一覧から保存場所を選択し、「ファイル名」に任意のファイル名を入力します。
次に、「作成」 をクリックします。

4)「[インポート」 ダイアログ ボックスを表示します。
メニューバーの「ファイル」 の「外部データの取り込み」 の[インポート] をクリックします。

5)インポートするデータを選択します。
「保存先」 ボックスの一覧から保存場所を選択し、インポートするファイルを選択します。
次に、「インポート」 をクリックします。

6)インポートするオブジェクトを選択します。
インポートするオブジェクトのタブをクリックし、インポートするデータをクリックします。
次に、「OK」 をクリックします。
これをオブジェクト毎に実施する。

7)オブジェクトがインポートされます。

8)Visual Basic Editor を開きます。
オブジェクトの一覧から、「モジュール」 をクリックし、任意のモジュールをクリックします。
次に、「デザイン」 をクリックします。

9) コンパイルを実行します。
「デバッグ」 をクリックし、「”モジュール名” のコンパイル」 をクリックします。

10)エラーメッセージを閉じます。
エラーメッセージが表示されたら、[OK] をクリックします。

11)モジュールをデバッグします。
エラーのある個所が選択されるのでデバッグします。

3.Jetcomp ユーティリティを使用する

・MDB ファイルが開けない場合など、他の方法では回復不可能なmdbを修復できる場合があります。

・Jetcomp ユーティリティの入手方法
下記のサポート技術情報を参照して下さい。
http://support.microsoft.com/kb/273956/EN-US/

補足
Access2000で記載していますが、Access2002も同様です。
実は、Access 2000 でデータベースの破損を防ぐには、使用しているユーザー数やネットワーク環境、Jetのバージョン等、細かな設定も必要ですが、それは次回掲載いたします。

4.競合エラー状態になった時

Accessのシステムプログラムとデータを分離して、複数台のPCで「データmdb」を共有して使用している場合、データmdbの「.ldb」ファイルが削除できない 使用状態になっているロックファイルが消せない場合があります。

1)「データ」ファイルがロック状態の場合

システムを正常に終了させることができない場合、強制的にでも終了させる。

ロックさせたパソコンを特定させて、パソコンを再起動させる

ロックが外れてた、不具合「テーブル」を修正する(この際、バックアップコピーを予め取っておく)

「Delete」文字が入って削除できない場合は、項番2の方法で「テーブル」を入れ替える。

2)ロックが外れない場合

データファイルのおかしくなっている不具合「テーブル」を見つけて、別のアクセスデータベースにインポートする

ロックされたファイルをコピーする。不具合「テーブル」を削除して、

別のアクセスデータベースにインポートした「テーブル」のみをインポートする。

入れ替えたデータベースファイルの名前を変更して、プログラムシステムの「リンク」を新たに取り直して、旧データファイルを削除する。

Sponsored Links









関連記事
マイクロソフト、「Access」の便利な機能を使って、業務アプリケーションを作成して活用する。

Access 2013 の新機能とAccess 2013 で廃止、変更された機能とバージョンアップの必要性について
第1回 ACCESS(アクセス)データベース作成ソフトについて
第2回 ACCESS(アクセス)データベース作成ソフトについて
第3回 ACCESS 2007の情報
第4回 ACCESS トラブル対処の情報1「mdbが壊れてしまった時」
第5回 ACCESSを「ファイル共有」で使用する場合の注意事項
第6回 ACCESS トラブル対処の情報2 「メモリ不足」エラーについて
第7回 ACCESSで Jet 4.0 データベースの動作環境を最適に保つ方法
第8回 Access 2000とMSDEを利用してクライアント/サーバーシステムを構築する
第9回 ACCESS 2010の情報
第10回 Access2000(mdb)からAccess2010(accdb)に変換する

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です