SHAREPOINT サーバーに再接続、1つ以上の SharePoint サーバーに対する接続が復元されました。[同期]
Access 2013 を使用して、SharePointのカスタムリストのデータを共有しています。
運用環境で、下のようなエラーが発生します。
同一のレコードを編集していると思い、レコードに編集フラグをセットして、同一レコードを同時には編集しないように排他制御を行いましたが、エラーは回避できませんでした。
よくメッセージを見ると「サーバーに再接続」と表示しており、サーバー切断中に編集したデータを更新しようとして競合しているようなメッセージです。
このエラーメッセージからわかること
1.他のユーザーが変更したのは、2015/09/12 17:56です。
2.自分の変更は、2015/09/14です。
こんなにも時間がずれているのに、どうして競合するのでしょうか?
どのようにして、このエラーを回避できるのか、Microsoftに問い合わせ中です。
(解答待ち)
同様のエラーを再現できました。
これで間もなく解決できそうです。
症状は、
1.一度アクセスしたテーブルが更新された場合、最新の情報に更新せずに、そのテーブルを更新した場合に発生するエラーのようです。
最新の情報に更新するには、そのテーブルをオープンすることで更新されます。
今回のエラーは、DoCmd.RunSQL “UPDATE **** WHERE [ID]=*** “コマンドで実行したことが原因のようです。
RunSQLコマンドは、1レコードの更新でもテーブル全体の情報を監視しているみたいで、このようなエラーが発生します。RecordSetを更新するとそのレコードだけの処理を行い通過するようです。
SharePointのカスタムリストを使う場合は、RunSQLで更新するのは、コマンドは簡単ですが、リスクを伴います。