2015年7月16日木曜日

他のユーザーが同じデータに対して同時に変更を試みているので、プロセスが停止しました。???

SQLServer にAccess でリンクを張っている場合で、特定の条件にあてはまると、
「他のユーザーが同じデータに対して同時に変更を試みているので、プロセスが停止しました。」というエラーが表示され、更新ができなくなります。

これは、SQLServer のテーブルに「Bit」型のフィールドがあって、そのフィールドに「Null」が入力されてしまった場合に発生します。

SQLServer の「Bit」型フィールドに、Access からリンクを張ると、「Yes/No」型として扱われます。

Access では「Yes/No」型にはNullがあり得ますが、SQLServer 側の「Bit」型では、Null許容にしていても、Nullは許されません。

なので、Access から追加クエリー等でBit型のフィールドにNullを送ってしまうと、そのレコードはもうAccessから編集できなくなって、表題のエラーが表示されます。

困ったことに、このエラー表示を見て、この現象を思いつくことが難しいです。
なので、同じ過ちをしても、なかなかすぐにこれを思い出すことができず、ネットを彷徨うことになります。

解決は簡単で、Bit型のフィールドを「0」か「1」のどちらかで埋めれば以後編集することができるようになります。

0 件のコメント:

コメントを投稿