Поделиться через


"Не удается обновить. База данных или объект доступен только для чтения" в запросе к связанному представлению SharePoint, если есть несвязанные поля подстановки

Симптомы

Рассмотрим следующий сценарий.

  • Вы работаете в Microsoft Access.
  • Запросы на обновление выполняются в связанном представлении Microsoft SharePoint.
  • Обновляемый базовый список содержит поля подстановки, которые не связаны с Access, так как они не включены в текущее представление.

В этом случае появляется следующее сообщение об ошибке:

Обновление невозможно. База данных или объект доступны только для чтения.

Причина

Эта проблема возникает при использовании макрокоманды ImportSharePointList (с версии Access 2016, ранее известной как TransferSharePointList) для связывания с представлением списка SharePoint в Access. Этот макрос создает связанные таблицы в Access для каждого столбца подстановки в представлении SharePoint. Однако при выполнении запроса на обновление сначала проверяется, что все столбцы подстановки содержат связанные таблицы в базе данных для базового списка. Запрос на обновление не проверяет только поиски, которые являются частью текущего запроса.

Обходной путь

Чтобы обойти эту проблему, используйте один из следующих методов:

Способ 1

Свяжите все столбцы подстановки в базовом списке с таблицами. Для этого выполните следующие действия:

  1. Ссылка на сам список SharePoint. Это гарантирует, что все таблицы подстановок для базового списка присутствуют в Access.
  2. Удалите связанную таблицу для списка SharePoint в Access. (Оставьте связанные таблицы для столбцов подстановки.)
  3. Связывание с представлением SharePoint с помощью макрокоманды ImportSharePointList .

После выполнения этих действий Access содержит связанную таблицу для представления SharePoint и связанные таблицы для всех столбцов подстановки в базовом списке, а не только для столбцов подстановки, включенных в представление.

Способ 2

Отключите кэширование в Access 2010. Для этого выполните следующие действия:

  1. В Access выберитеПараметрыфайла>.
  2. Выберите Текущая база данных.
  3. Прокрутите вниз до области Кэширование веб-службы и найдите таблицы Microsoft SharePoint.
  4. Установите флажок Никогда не кэшировать .

Дополнительная информация

Дополнительные сведения об известных проблемах, возникающих при использовании списков SharePoint в Access, см. в статье Форматы кэша Access для списков и библиотек документов SharePoint.

Дополнительные сведения о макросе TransferSharePointList см. в разделе Действие макроса TransferSharePointList.