web-dev-qa-db-ja.com

あなたと別のユーザーが同じデータを変更しようとしているため、Accessデータベースエンジンがプロセスを停止しました

最近、アクセスデータベースをSQLサーバーに移行しました。完了したら、フロントエンドアクセスデータベースを使用してデータベースのテストを開始しました(以前のセットアップでは、フロントエンド用とバックエンド用の2つのアクセスファイルが必要でした)。すぐにエラーが発生しました。

あなたと別のユーザーが同じデータを同時に変更しようとしているため、Microsoft Accessデータベースエンジンがプロセスを停止しました。

現在、これらのフロントエンドで複数の人が作業していますが、このメッセージを受け取った時点で、データにアクセスしているのは私だけです。テストのための私の一般的なプロセスは、フォームを使用してデータを挿入することでした。その後、データの削除を試みます。データがテーブルに到達していることと、この情報を表示または編集しようとしているのは私だけであることを知っていますODBC接続を使用してSQLサーバーに接続しました提案やヘルプは大歓迎です。私はこのスレッドを頻繁に監視しますので、どんな質問でも比較的迅速に回答してください。

16
ChettDM

この記事 では、ビットデータタイプによってエラーが発生する可能性があることがわかります:

この問題は、SQL Serverベースのデータベースでビットデータ型のフィールドが空白のままになっている場合に発生します。 Microsoft Accessは空白のフィールドをNull値を含むフィールドとして解釈し、Jetデータベースエンジンはそれらを解放しません。その結果、レコードはロックされたままになり、削除できなくなります。

SQL Serverからデータを更新するには、常に主キーまたは一意のキーが必要であることに注意してください。

30
Fionnuala

コンパクト&修復データベースを使用する

2
sirvan

SQLサーバーのテーブルにタイムスタンプフィールドを追加し、アクセス時に再リンクしました。これでうまくいきました。また、テーブルで発生していた編集の問題も解決しました。これが他の人々にも役立つことを願っています。テーブルにはすでに主キーフィールドがありましたが、明らかにタイムスタンプフィールドも必要です。

1
Andy

Access 2016をインストールしたばかりで、accdbからAccess 2013テーブルをインポートしようとしてエラーが発生しました。

どうやら2016バックエンドエンジンはSQL Serverになりました。使用するつもりのフィールドを削除しましたが、実行しなかったため、Nullでいっぱいになりました。その後は問題ありません。

1
IABHunt

上記のように私もこの問題を抱えていましたが、Microsoftのリンクが機能しなくなったので返信を投稿しようと思いました。

AccessデータベースのバックエンドをAWSサーバー上のMySQLに移行しました。レコードを追加または削除しようとした関連テーブルから、このスレッドのタイトルであるエラーが発生しました。

幸いなことに、これはデータベースを再開発する前に使用されていた古いフィールドだったので、「BIT」タイプのフィールドを削除して、削除できるようにしました。

0
Gord00

ADODBオブジェクトでExcelスプレッドシートに書き込むときに、VBA SLQでこのエラーが発生しました。私が解決策を見つけたが、他のどこにもそれを見たことがないので、私はここに投稿しています。

SQL WASの更新が必要だったことが判明しましたが、エラーが発生しました。だから私はそれを無視した。そのようです。

    On Error Resume Next
        rs.Open sql, cn, adOpenKeyset, adLockOptimistic
    On Error GoTo -1
    On Error GoTo 0

「ドキュメントが閉じている間は書き込めない」など、スプレッドシートへの書き込み中に他のエラーが発生したことがあります。再び、それは機能しましたが、それでも不平を言いました。したがって、私の推奨事項は、額面どおりの更新エラーを絶対に受け取らず、実際に機能していないことを確認し、機能している場合は無視してエラーをクリアすることです。

0

sQLでテーブル列を作成するときは、デフォルト値としてGetDate()を使用しないようにしてください。それで問題が解決しました。

0
Xavier

ビットフィールドとnull許容フィールドがないにもかかわらず、このエラーが発生しました。 DATETIMEフィールドをSMALLDATETIMEに変更すると、エラーが発生しなくなりました。私が考え得る唯一のことは、Accessが日付を誤って解釈し、それからだまして他の何かが日付を更新したと思い込ませることでした。 AccessがSQL Serverとは異なる方法で丸めることができる別のスレッドで別のコメントを見たので、これを考えました。

0
Jordan