“无法更新。 如果存在未链接的查找字段,则数据库或对象是只读的“针对链接的 SharePoint 视图的查询

症状

请考虑以下情况:

  • 你正在使用 Microsoft Access。
  • 针对链接的 Microsoft SharePoint 视图执行更新查询。
  • 要更新的基础列表包括未链接到 Access 的查找字段,因为它们未包含在当前视图中。

在这种情况下,您会收到以下错误消息:

不能更新。 数据库或对象为只读。

原因

在 Access 2016 (使用 ImportSharePointList 宏操作(以前称为 TransferSharePointList) )链接到 Access 中 SharePoint 列表的视图时,会出现此问题。 此宏在 Access 中为 SharePoint 视图中的每个查阅列创建链接表。 但是,当更新查询运行时,它首先检查所有查找列是否在基础列表的数据库中都有链接表。 更新查询不会以独占方式检查属于当前查询的查找。

解决方法

若要解决此问题,请使用以下方法之一:

方法 1

将基础列表中的所有查阅列链接到表。 为此,请按照下列步骤操作:

  1. 链接到 SharePoint 列表本身。 这可确保基础列表的所有查找表都存在于 Access 中。
  2. 删除 Access 中 SharePoint 列表的链接表。 (保留查阅列的链接表。)
  3. 使用 ImportSharePointList 宏操作链接到 SharePoint 视图。

执行这些步骤后,Access 将包含 SharePoint 视图的链接表和基础列表中所有查找列的链接表,而不是仅包含视图中包含的查阅列。

方法 2

在 Access 2010 中禁用缓存。 为此,请按照下列步骤操作:

  1. 在“Access”中,选择“ 文件>选项”。
  2. 选择“ 当前数据库”。
  3. 向下滚动到 “缓存 Web 服务 ”区域,然后找到 Microsoft SharePoint 表。
  4. 选中“ 从不缓存 ”复选框。

更多信息

有关在 Access 中使用 SharePoint 列表时发生的已知问题的详细信息,请参阅 SharePoint 列表/文档库的访问缓存格式

有关 TransferSharePointList 宏的详细信息,请参阅 TransferSharePointList 宏操作