データベース ファイルは、短時間でサイズが大きくなり、パフォーマンスに影響が生じることがあります。 破損したり、破損したりすることがあります。 [データベースの圧縮/修復] コマンドを 使用して 、これらの問題を回避または解決できます。 最適化プロセスではデータは圧縮されず、不要な領域が削除され、データベース ファイルのサイズが小さくなります。 [データベースの最適化/修復] コマンドを使い、データベースのパフォーマンスを改善することもできます。
ヒント : データベースを分割 すると、ユーザーが直接アクセスしない別のファイルにデータを保存することで、データベース ファイルの破損を防ぎ、データの損失を制限できます。
データベースを圧縮して修復する方法
データベースの圧縮と修復には、いくつかの方法があります。 一般的な方法は、データベースが閉じるときにデータベースを自動的に圧縮および修復する方法です。 さらに、[データベースの圧縮/修復]コマンド、データベースを開いている場合、および開いていないデータベースで手動で実行できます。
始める前に
圧縮と修復の操作を開始する前に、次の操作を行います。
-
データベースのバックアップを作成する 修復プロセスを実行すると、破損したテーブルから一部のデータが切り捨てられる可能性があります。 バックアップからこのデータを修復できる場合もあります。 通常のバックアップ戦略に加えて、[データベースの圧縮/修復] コマンドを使用する前に、すぐにバックアップを 作成する必要 があります。 詳細については、「バックアップと復元 のプロセスでデータを保護する」を参照してください。
-
データベースへの排他的アクセスを取得する 最適化と修復の操作を行うときには、他のユーザーの操作に影響を及ぼす可能性があるため、データベース ファイルに対する排他的アクセスが必要です。 最適化と修復の操作を実行する予定を他のユーザーに通知し、その間はデータベースの使用を控えてもらうようにします。 詳細については、「既存の Access データベースを開く」を参照してください。
データベースの使用を控えてもらう時間をユーザーに伝えます。 最適化と修復の操作を定期的に実行している場合は、処理に要した時間を記録しておきます。 そうすることで、必要な時間を的確に予測でき、データベースの使用を控えてもらう時間をユーザーに指示できます。
-
データベースに対する十分なファイルアクセス許可を取得する 十分なアクセス許可がない場合、データベースの圧縮と修復が必要な場合は、システム管理者に問い合わせてください。 詳細については 、「Windows 10 でのネットワーク上でのファイル共有の変更」を参照してください。
データベースが閉じるときに自動で最適化および修復する
[閉じるときに最適化する] データベース オプションをオンにすると、データベースが閉じるときに最適化と修復を自動で行うことができます。 このオプションの設定は、現在開いているデータベースにのみ適用されます。 自動で圧縮および修復するデータベースごとに、このオプションを個別に設定します。 この場合、データベースが一時的に使えなくなることから、複数のユーザーが使うデータベースでは、このオプションを設定しないことをお勧めします。
-
[ファイル]、[オプション] の順に選びます。
-
[Access の オプション] ダイアログ ボックス で、[カレント データベース] を選択します。
-
[アプリケーション オプション] の [閉じるときに最適化する] チェック ボックスをオンにします。
-
[OK] を選択します。
-
データベースを閉じてもう一度開き、オプションを有効にします。
開いているデータベースを手動で圧縮して修復する
-
[ファイルと>情報] >データベース&修復] を選択します。
Access では、圧縮/修復されたデータベースのコピーが同じ場所に作成されます。
開いていないデータベースを手動で圧縮して修復する
Access データベースを直接開かない場合は、次の手順を使用します。
-
現在、データベース ファイルを使用している他のユーザーがいなきを確認します。
-
Access を起動します。
-
Access 2013、Access 2016、Access 2019 の場合:
-
[テンプレート] ページで、[空のデータベース] をダブルクリックします。
-
[ファイル ] を選択 > 閉じます。
-
-
[ データベース ツール] を選択 > データベースの圧縮/修復を行います。
-
[最適化元データベース] ダイアログ ボックスで、最適化と修復を行うデータベースを見つけ、ダブルクリックします。
Access では、圧縮/修復されたデータベースのコピーが同じ場所に作成されます。
Access でメッセージが表示されたら、破損したデータベースを圧縮して修復する
破損したデータベース ファイルを開く場合、データベースの圧縮と修復を求めるメッセージが表示されたら、[はい] を選択 します。 次の 2 つのことが起こる可能性があります。
-
破損したファイルの修復が完了すると、修復が成功した旨のメッセージが表示され、データベースの内容をチェックして不備がないことを確認するよう求められます。
-
Access が部分的にしか成功しなかった場合 、MSysCompactErrorsという名前のシステム テーブルで修復できないデータベース オブジェクトが追跡されます。 データシート ビューで MSysCompactErrors テーブル が開きます。 データベースが破損する前にバックアップがある場合は、MSysCompactErrors テーブルを使用して、修復したデータベースにインポートするオブジェクトを決定できます。 システム テーブルを表示するには、ナビゲーション タイトル バーを右クリックし、[ナビゲーション オプション] ダイアログ ボックスで [システム オブジェクトの表示]を選択します。
データベースを圧縮して修復する理由
この概要では、[データベースの最適化/修復] コマンドを使用して、使用に伴ってファイルのサイズが大きくなり、ファイルが破損するなど、データベースに影響が及ぶような問題を防ぎ、修正する方法について説明します。
データベース ファイルは使用に伴ってサイズが大きくなる
データの追加や更新、デザインの変更に伴って、データベース ファイルのサイズは大きくなっていきます。 新しいデータの追加だけでなく、次のような原因もあります。
-
Access では、さまざまなタスクを実行する目的で、一時的な隠しオブジェクトが作成されます。 この一時オブジェクトが不要になった後でもデータベース内に残ることがあります。
-
データベース オブジェクトを削除しても、そのオブジェクトが使用していたディスク領域は自動では解放されません。オブジェクトを削除しても、データベース ファイルはそのディスク領域を引き続き使用します。
データベース ファイル内に一時オブジェクトや削除済みオブジェクトの残骸が増えてくると、パフォーマンスが低下することがあります。 オブジェクトを開いたりクエリを実行したりする時間が通常より長くなるなど、一般的な操作が全般に遅くなったように感じられます。
データベース ファイルは破損することがある
状況によっては、データベース ファイルが破損することがあります。 データベース ファイルをネットワーク経由で共有し、複数のユーザーが同時にファイルを直接編集する場合、まれではありますが、そのファイルは破損するリスクがあります。 破損のリスクは、ユーザーがメモ型フィールドのデータを頻繁に編集する場合に大きくなり、時間経過と共にリスクは大きくなります。 このリスクを軽減するには、[データベースの最適化/修復] コマンドを使用します。
多くの場合、このような破損は、Visual Basic for Applications (VBA) モジュールに問題が生じ、データ損失のリスクはありません。 ただし、このような破損は、VBA コードの損失やフォームが使用できなくなるなど、データベース設計が破損するリスクにつながる可能性があります。
まれに、データベース ファイルの破損によってデータが失われる場合もあります。 通常、失われるのは、単一のユーザーが行った最後の操作、つまりデータに対する単一の変更に限られます。 ユーザーがデータの変更を開始した後で、たとえばネットワーク サービスの停止によってその変更が中断された場合、Access は、そのデータベース ファイルが破損したものとしてマークします。 このファイルは修復可能ですが、修復が完了した後で一部のデータが失われている場合があります。