日前,客户联系我说,有一个用户在使用系统时出现:编辑记录弹出“记录被删除”的错误,如下图提示:
打开窗体时,列表中全部显示为:#已删除的
经过测试分析,确认该问题为Office更新导致的,错误的Office版本为:2202 Build 16.0.14931.20392
出错的环境为:Access客户端,SQL Server数据库
根据调试,确认导致该错误的具体原因为:表中主键为nvarchar字段的表,链接到Access即无法正常显示。
对于该问题,有两种解决方案:
方案一:
步骤1:将所有在链接表显示“#已删除” 字样的sql server表中主键的字段类型由nvarchar改为varchar;
步骤2:按住shift键不要放开,进入Main文件的设计界面,删除出问题的链接表;
步骤3:在客户端服务器配置菜单中重新点一下“设为当前”刷新一下链接表,重新链接一下出问题的那个表。
方案二:
在出错的Access客户端电脑上更新ODBC驱动,一般的情况下,在未手动安装驱动,默认是使用的SQL Server驱动,这个错误可以通过将ODBC驱动升级到ODBC Driver 17 for SQL Server来修复。在ODBC Driver 17 for SQL Server的环境下,Access可以正常链接SQL Server中nvarchar主键的表。