●全ページ一覧の表示(ページ下へ移動)>>

▲PAGE TOP

データベースの矛盾エラー


NO 内容 分類 発行日
vol324 データベースの矛盾エラー アクセス(Access)全体 2018年11月14日

お客様でエラーがでているようです。

エラーの内容は、
「このデータベースは矛盾がある状態なので、Microsoft Accessで回復処理を実行します。
この処理では、データベースのバックアップが作成され、回復したすべてのオブジェクトが新しいデータベースに配置されます。
回復が完了すると、新しいデータベースが開きます。
回復に失敗したオブジェクトの名前は、"Recovery Errors"テーブルに記録されます。」

です。

お客様で、ずっとこの問題は発生していたようです。
最近、特に多くなったそうです。

Accessを開くとした時に上のエラー表示が出て開けなくなるそうです。
一人が開けなくなると、全員ひらけなくなります。
そうなるとみんなのaccessを閉じて、バックアップしたものを上書き保存したら治るそうです。
Accessのプログラムをかなりの人数で共有しているそうです。
SQL Serverには、問題はないそうです。

使用状況を確認しました。

  • サーバーで、Access2016のテーブルだけを、SQL Server 2016に移行したそうです。

  • 次に、サーバーのAccess2016のクエリ、フォーム、レポートなどのAccessのプログラムからSQL ServerにODBCから接続しているそうです。
    サーバー上です。

  • クライアントは、Accessランタイムをインストールしています。
    サーバーのAccess2016のプログラムを共有にしてアクセスして使っているそうです。

多くの人がサーバーのAccess2016のプログラムにアクセスすることで上のエラーが発生するそうです。

こういう使い方は止めた方がよいと思います。

Accessのプログラムは、元々は、1人用のデータベースです。
排他制御に弱いです。
多くの人が1つのプログラムにアクセスすると、最悪の場合壊れる可能性があります。

こういう場合は以下のようにやってください。

  1. サーバーのクエリ、フォーム、レポートのAccess2016のプログラムは、それぞれのクライアントにコピーします。

  2. クライアントにODBCを設定します。

  3. 1台のクライントにAccessのソフトウェアを入れて、ODBC経由でサーバーのSQL Server 2016にリンクします。

  4. その他のクライアントには、Accessランタイム(無料)をインストールします。

  5. それぞれのクラインとにODBCを作成します。
    最初に設定したODBCの名前と同じ名前にします。

  6. それぞれのクライントに最初のAccess2016でリンクしたプログラムをコピーします。
    これで、動くと思います。

時々、SQL ServerとAccessを使って、クライアントサーバーシステムを構築する場合、Accessのプログラムを共有されるお客様がおられます。

こういう場合は、クライントのパソコンには、Accessのプログラムをコピーして使用した方が良いと思います。


参考にしてください。



おすすめ教材


就職・転職にはマイクロソフトオフィスの知識が必修です。





[↑一番上へ]
[マイクロソフトアクセス(Access)活用法(メールマガジン)(ホームへ)]
11:331108

<<全ページのメニューリストです>>

アクセス(Access)の概要

アクセス(Access)全体

テーブル

クエリ

フォーム

レポート

マクロ

VBA

SQL Server

システム開発

SQL Azure

その他