SQLServer 2008 R2 をデータベースとして使用する Access アプリケーションがあります。
単一のレコードを更新しようとすると、次のエラーが発生します。
「3179 あなたと別のユーザーが同じデータを同時に変更しようとしているため、Microsoft Jet データベース エンジンがプロセスを停止しました」
このエラーは、この特定のレコード (および他のいくつか) にのみ追加され、更新しようとするたびに追加されます。アプリケーション(およびデータベース)は単一のユーザーとして実行され、同時に実行されているスレッドが同じレコードを更新していません
試したすべてのマシンでこのエラーが発生するため、SQLServer とは関係ありません。
EDIT
SQL Serverでレコードを直接更新しようとしましたが、問題ありません。更新しても問題ありません。
問題は、Microsoft Access から 4 つのテキスト フィールド (es.Note) の 1 つを更新するときに発生することがわかりました。
以下のスクリプトを実行すると、特定のレコード (Cod_stabile=6600015) に対してのみエラーが発生し、他のレコードには問題はありません。他のフィールドの更新は問題ありません。エラーはテキストフィールドでのみ発生します。
Dim rs as DAO.Recordset
Dim db As DAO.Database
Set db = CurrentDb
. . .
StrSql = "SELECT St_Stabili.* FROM St_Stabili WHERE (St_Stabili.Cod_Stabile='6600015') ;"
Set rs = db.OpenRecordset(StrSql)
rs.Edit
rs!Note = '-'
rs.update <- error
. . .
StrSql = "SELECT St_Stabili.* FROM St_Stabili WHERE (St_Stabili.Cod_Stabile='6600016') ;"
Set rs = db.OpenRecordset(StrSql)
rs.Edit
rs!Note = '-'
rs.update <- OK!
どうもありがとうございました