You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

长期正常的Access无DSN连接突然报Error 3125故障求助

解决Access无DSN连接SQL Server时Error 3125('dbo.Denomination'无效名称)的问题

问题背景

多年正常运行的MS Access客户端(通过无DSN方式连接SQL Server),自2023年1月14日起出现Error 3125报错,提示:

'dbo.Denomination' 不是有效名称,请确认无无效字符、标点且长度合规

该表名称简短合规,无无效字符,且同连接下的AuditLog、lnkDBSCheck表可正常连接。运行环境为Windows 10 Pro 64位22H2(OS内部版本19045.2486),怀疑问题与1月11日推送的KB5022282(Windows 10 22H2 x64累积更新)、KB890830(Windows恶意软件删除工具)有关(1月13日重启工作站后触发)。已尝试以下操作但均无效:

  • 反编译Access前端(FE)
  • 更换ODBC驱动:ODBC Driver 18 for SQL Server、ODBC Driver 17 for SQL Server、SQL Server Native Client 11.0
  • 使用客户端早期版本

排查与解决建议

1. 卸载可疑累积更新KB5022282

Windows累积更新可能对ODBC连接的表名解析逻辑造成影响,优先卸载KB5022282测试:

  • 打开设置 > 更新和安全 > Windows更新 > 查看更新历史记录 > 卸载更新
  • 找到KB5022282,右键选择卸载,重启工作站后重新测试连接

2. 重写并验证链接表的连接字符串

检查Denomination表的连接字符串是否存在隐性格式问题:

  • 在Access中打开外部数据 > 链接表管理器,选中Denomination表,点击编辑
  • 确认Initial Catalog(目标数据库名)、Server(服务器地址)等参数无多余空格或特殊字符
  • 手动替换为标准无DSN连接字符串测试,示例:
    Driver={ODBC Driver 17 for SQL Server};Server=你的服务器地址;Database=目标数据库名;UID=登录账号;PWD=登录密码;
    

3. 检查SQL Server端的表元数据与权限

  • 登录SQL Server,执行sp_help 'dbo.Denomination',检查表的所有者、列定义等元数据是否正常,排查是否存在不可见特殊字符(如全角空格)
  • 确认Access使用的登录账号对dbo.Denomination表拥有SELECT及必要权限
  • 尝试临时重命名表为Denomination_temp,再改回原名称,修复可能的元数据异常

4. 重建Access链接表缓存

删除现有链接表后重新创建,排除前端缓存问题:

  1. 在Access中删除Denomination链接表
  2. 打开外部数据 > ODBC数据库 > 链接到数据源 > 无DSN
  3. 输入正确连接字符串,重新选择dbo.Denomination表完成链接
  4. 若仍报错,创建空白Access数据库仅链接该表,排除原前端其他对象的干扰

5. 验证系统区域设置兼容性

Windows更新可能修改区域设置,导致ODBC编码解析异常:

  • 打开控制面板 > 区域 > 管理 > 更改系统区域设置,确保当前系统区域与SQL Server服务器的区域设置一致
  • 重启工作站后重新测试连接

内容的提问来源于stack exchange,提问作者Oxian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 04:25:16