SHAREPOINT サーバーに再接続のエラーを回避しました。

▼警告メッセージ
SHAREPOINT サーバーに再接続、１つ以上の SharePoint サーバーに対する接続が復元されました。[同期]をクリックすると、開いているすべてのオブジェクトを閉じ、保留中の変更をサーバーに送信して、サーバーのデータと同期します。

Access 2013 を使用して、SharePointのカスタムリストのデータを共有しているのですが、
上記のようなエラーメッセージが発生して、うまく対策ができずに困っています。

「SharePoint サーバーに対する接続が復元されました。」と表示されているのですが、いったん切断されてその間に編集したデーを更新しようとして発生しているエラーのようです。


![20150917_1.png](https://qiita-image-store.s3.amazonaws.com/0/93227/288ac57f-8fd9-308b-3ac1-df17248e4b9a.png)


やった、同様のエラーを再現することができました。(^^)v

![20150917_2.png](https://qiita-image-store.s3.amazonaws.com/0/93227/5021b7a0-f5b2-f8c2-d416-65c599c1a46f.png)

症状は、

１．一度アクセスしたテーブルが更新された場合、テーブルの最新情報を取得せずに、そのテーブルを更新した場合に発生するエラーのようです。

最新の情報に更新するには、そのテーブルをオープンすることで更新されます。



今回のエラーは、DoCmd.RunSQL "UPDATE **** WHERE [ID]=*** "コマンドで実行したことが原因のようです。

RunSQLコマンドは、１レコードの更新でもテーブル全体の情報を監視しているみたいで、このようなエラーが発生します。ODBC接続した特定のRecordSetを更新するとそのレコードだけの処理を行い正常に通過するようです。



SharePointのカスタムリストを使う場合は、RunSQLで更新するのは、コマンドは簡単ですが、リスクを伴いますね。

▼詳しい解決策は、
http://www.timsoft.co.jp/stadium/?p=3783

▼マイクロソフトからの回答は下記の通りです。
[タイトル]
SharePoint サーバーに再接続エラーが頻繁に発生する

[お問い合わせの概要]
Access 2010 を使用して、 SharePoint のカスタムリストを共有しています。データの編集時間は異なり競合しないはずなのですが、「SHAREPOINT サーバーに再接続 [同期]」のエラーが頻繁に発生します。
 

- 最終回答としてお伝えする内容
SharePoint サーバーに再接続エラーが頻繁に発生する件につきまして調査した結果をご報告いたします。
 
[回答]
お問い合わせの内容につきまして、以下にご案内いたしますので、ご確認いただけますようお願い申し上げます。
本件につきましては、ファイル内の資格情報に問題がある可能性がございます。
以下に記載いたします操作手順をご確認いただき、問題が改善できるかをお試しいただきますようお願いいたします。

[手順概要]
==========
1.  ブラウザーのキャッシュの削除
2.  Office 2010 からサインアウトする
3.  資格情報のリセットを行う
4.  Office 2013 にサインインする
5.  信頼済みサイトの確認
6.  Office 365 にサインインする際に "サインインしたままにする" を有効にする

[手順詳細]
==========
<事前準備> 
※ SharePoint Online サイトよりサインアウトを行います。
※ Word 2010、Outlook 2010、Lync 2010 などすべての Office クライアントを終了します。 
※ OneDrive for Business 同期クライアントを終了します。 

デスクトップ画面右下の通知領域より、OneDrive for Business 同期クライアント (紺色の雲のアイコン) を右クリックし、[終了] をクリックします。
※  コンピューターを再起動してください。

1.  ブラウザーのキャッシュの削除
-------------------------------
1-1. Internet Explorer メニューバーにて [ツール] - [インターネット オプション] をクリックします。
※ ツール バーが表示されていない場合は、右上の [歯車] のアイコン - [インターネット オプション] をクリックします。
1-2. [全般] タブの [閲覧の履歴] の項目で、[削除] ボタンをクリックします。
1-3. [お気に入り Web サイト データを保持する] のチェック ボックスを確認し、チェックが入っている場合には、チェック
を外します。
1-4. [インターネット一時ファイル]/ [クッキーと Web サイト データ]/[履歴]/[ダウンロードの履歴]/[フォーム データ] のチェック ボックスにチェックを入れます。
1-5. [削除] ボタンをクリックします。
1-6. インターネット オプションの画面で [OK] をクリックします。
1-7. Internet Explorer をいったん閉じて、再度起動します。

2. Office 2010 からサインアウトする
-------------------------------
2-1. Office 2010 アプリケーションを起動します。(例 : Excel 2010 など) 
2-2. 新しいドキュメントを選択します。(例 : 空白のブック など) 
2-3. [ファイル] メニューより [アカウント] を選択します。 
2-4. 表示された [アカウント] 画面内の [サインアウト] をクリックします。 
2-5. [アカウントの削除] ウィンドウが表示されますので、[はい] をクリックします。 
2-6. Office 2010 アプリケーションを終了します。

3. 資格情報のリセットを行う
-------------------------------
3-1. [コントロールパネル] 内の [ユーザー アカウント] を選択します。 
3-2. [資格情報マネージャー] をクリックします。 
3-3. [Windows 資格情報] をクリックします。 
3-4. 汎用資格情報の一覧より、"MicrosoftOffice15_Data:orgid" で始まる資格情報を削除します。 
3-5. 汎用資格情報の一覧より、"MicrosoftOffice15_Data:live" で始まる資格情報が存在している場合は削除します。

4. Office 2010 にサインインする 
-------------------------------- 
4-1. Office 2010 アプリケーションを起動します。(例 : Excel 2010 など) 
4-2. 新しいドキュメントを選択します。(例 : 空白のブック など) 
4-3. [ファイル] メニューより [アカウント] を選択します。 
4-4. 表示された [アカウント] 画面内の [サインイン] をクリックします。 
4-5. [サインイン] ウィンドウが表示されます。Office 365 へのサインイン時に使用している電子メール アドレスを入力し、[次へ] をクリックします。 
4-6. 表示された [サインイン] ウィンドウにてパスワードを入力し、[サインインしたまま処理を続ける] がチェックされていることを確認し [サインイン] をクリックします。

5. 信頼済みサイトの確認 
------------------------ 
5-1. Internet Explorer メニュー バーにて [ツール] - [インターネット オプション] をクリックします。 
5-2. [セキュリティ] タブをクリックし、[信頼済みサイト] - [サイト] をクリックします。 
5-3. [Web サイト] に次の URL が表示されていない場合は追加します。
  [https://*.sharepoint.com/]https://*.sharepoint.com 
  [https://*.office.com/]https://*.office.com 
  [https://*.sharepointonline.com/]https://*.sharepointonline.com 
5-4. [閉じる] - [OK] と順にクリックします。

6. Office 365 にサインインする際に "サインインしたままにする" を有効にする
------------------------ 
6-1. Office 365 へのサインイン時に、必ず "サインインしたままにする" にチェックを入れます。
6-2. "サインインしたままにする" のチェック ボックスが表示されない場合は、[その他のアカウント] をクリックすると "サインインしたままにする" が表示されます。
※ [サインインしたままにする] について
--------------------------------------

[サインインしたままにする] にチェックを入れサインインいただく操作は、SharePoint Online へサインインするための資格情報をローカル PC のディスク上に保存する効果がございます。

ローカル PC の WebClient サービスが SharePoint Online サーバーへ接続する際に上記資格情報を参照するため、この操作が重要となります。

なお、この操作によりディスク上に Cookie として保存された資格情報の保持期間は 8 - 10 時間程度、この Cookie が最後に更新されてから最大 5 日間でございます。

そのため、資格情報が有効期限切れとなったことにより WebClient が SharePoint Online サーバーに接続できず、ローカル PC 起動時のネットワーク ドライブ自動マウント処理時や、ネットワーク ドライブに移動しようとした際にエラーが発生することがございます。

その場合、[サインインしたままにする] にチェックを入れ、改めてサインインをしていただくことにより、再度ディスクに資格情報が書き込まれて接続が正常に行えるようになります。

しかしながら、ブラウザーキャッシュの削除に伴い該当の Cookie が削除されると、[サインインしたままにする] にチェックを入れてサインインしてから 5 日以内のタイミングであっても、認証に用いる [固定 Cookie] が削除されているため、再度サインイン操作が必要となります。

以上、ご確認くださいますようお願いいたします。

適切な対応を心がけてはおりますが、ご不明な点やご要望などがございましたら、些細なことでも構いませんので、お気軽にお知らせくださいますようお願いいたします。
------------------------(以上)--------------------------

以上が、Microsoftからの回答です。
質問の仕方が悪いのか、回答する人が理解していないのか、まったく的外れな回答です。

しかし、Microsoftの担当者が、このようなアドバイスをくれることは、これだけでかなり勉強になります。
こんな時に、どこから原因を紐解けばいいのかなど、的を外れていても専門の技術者と情報交換できることは、いままでのMicrosoftにはなかったことです。

解決策はいただけませんでしたけど、貴重な情報をいただけたことに感謝しています。


[![image](https://qiita-image-store.s3.amazonaws.com/0/93227/0a92c014-c979-ade7-7c61-417465a03a38.png)](http://access-cloud.hatenablog.com/)
---
▼Accessを使って、「Accessをクラウドで運用する方法」をブログで発信しています。
よろしければ、お立ち寄りください。

汎用データベース「カードボックス BARI」
http://access-cloud.hatenablog.com/entry/cardbox-bari