症状
在 Microsoft Access 桌面数据库中,当您尝试打开链接到 SharePoint 列表的表时,Access 将停止响应。
原因
如果尝试在 Access 中打开现有链接表的用户没有包含列表的 SharePoint 网站的本地存储凭据,则会出现此问题。 存储的凭据可以是 Windows 凭据管理器中的凭据,也可以是 Internet Explorer 中的持久性 Cookie。
解决方案
要解决此问题,请使用下列方法之一。
方法 1:添加 EnableLegacyListAuth 注册表项
注意对于Access 2016,必须安装即点即用版本 1804 (内部版本 9226.2114) 或 MSI 版本 (内部版本 16.0.4690.1000) 或更高版本才能使用此方法。 若要添加 EnableLegacyListAuth 注册表项,请执行以下步骤:
打开注册表编辑器,找到并选择以下注册表子项:
对于 32 位 Windows 上的 32 位 Office 或 64 位 Windows 上的 64 位 Office
- 对于 Access 2013
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\List
- 对于Access 2016
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\List
对于 64 位 Windows 上的 32 位 Office
对于 Access 2013
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\List
对于Access 2016
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\List
在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”。
键入 EnableLegacyListAuth,然后按 Enter。
右键单击“ EnableLegacyListAuth”,然后单击“ 修改”。
在“数值数据”框中,键入 1,然后单击“确定”。
找到以下注册表项:
对于 Access 2013
HKCU\SOFTWARE\Microsoft\Office\15.0\Common\Identity
对于Access 2016
HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Identity
确保 EnableADAL 的值为 0。
退出注册表编辑器。
方法 2:刷新列表
若要刷新列表,请执行以下步骤:
- 打开 Windows 任务管理器,选择“Microsoft Access”,然后单击“ 结束任务”。
- 重新打开数据库。
- 右键单击 Access 中的链接表,然后选择“ 更多选项>刷新列表”。
- 使用凭据登录。
方法 3:以编程方式重新链接列表
若要重新链接列表,请执行以下步骤:
- 打开 Windows 任务管理器,选择“Microsoft Access”,然后单击“ 结束任务”。
- 重新打开数据库,并创建新模块。
- 在 VBA 代码中,对链接表使用 TableDefs 集合的 RefreshLink 方法:
Public Function TableRelinkSample()
CurrentDb.TableDefs("<TableName>").RefreshLink
End Function
注意 如果有多个链接的 SharePoint 列表,则只需为其中一个表调用 RefreshLink 一次。
从 AutoExec 宏或数据库中的其他启动代码调用 TableRelinkSample () 函数。