症状
请考虑以下情况:
- 你正在使用 Microsoft Access。
- 针对链接的 Microsoft SharePoint 视图执行更新查询。
- 要更新的基础列表包括未链接到 Access 的查找字段,因为它们未包含在当前视图中。
在这种情况下,您会收到以下错误消息:
不能更新。 数据库或对象为只读。
原因
在 Access 2016 (使用 ImportSharePointList 宏操作(以前称为 TransferSharePointList) )链接到 Access 中 SharePoint 列表的视图时,会出现此问题。 此宏在 Access 中为 SharePoint 视图中的每个查阅列创建链接表。 但是,当更新查询运行时,它首先检查所有查找列是否在基础列表的数据库中都有链接表。 更新查询不会以独占方式检查属于当前查询的查找。
解决方法
若要解决此问题,请使用以下方法之一:
方法 1
将基础列表中的所有查阅列链接到表。 为此,请按照下列步骤操作:
- 链接到 SharePoint 列表本身。 这可确保基础列表的所有查找表都存在于 Access 中。
- 删除 Access 中 SharePoint 列表的链接表。 (保留查阅列的链接表。)
- 使用 ImportSharePointList 宏操作链接到 SharePoint 视图。
执行这些步骤后,Access 将包含 SharePoint 视图的链接表和基础列表中所有查找列的链接表,而不是仅包含视图中包含的查阅列。
方法 2
在 Access 2010 中禁用缓存。 为此,请按照下列步骤操作:
- 在“Access”中,选择“ 文件>选项”。
- 选择“ 当前数据库”。
- 向下滚动到 “缓存 Web 服务 ”区域,然后找到 Microsoft SharePoint 表。
- 选中“ 从不缓存 ”复选框。
更多信息
有关在 Access 中使用 SharePoint 列表时发生的已知问题的详细信息,请参阅 SharePoint 列表/文档库的访问缓存格式。
有关 TransferSharePointList 宏的详细信息,请参阅 TransferSharePointList 宏操作。