记录一次ACCESS数据库连接失败解决方案
·
问题描述
某次尝试连接Microsoft Access数据库时遇到连接失败错误,错误提示为“无法打开用应用程序较早版本创建的数据库”。该问题出现在使用ADO.NET或ODBC连接时,系统环境为Windows 11,Access数据库版本为2016。
原因
数据库为旧版.mdb格式,需替换连接字符串中的Provider为Microsoft.Jet.OLEDB.4.0。注意Jet引擎不支持64位应用。
检查是否启用了混合安全模式。在连接字符串中添加:
User Id=admin;Password=;
排查步骤
常见的Access连接字符串格式如下:
Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\path\to\database.accdb;
1.Microsoft.ACE.OLEDB.16.0替换为Microsoft.Jet.OLEDB.4.0尝试连接,报错The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine
2.尝试安装access 2003 ,在msdn中下载对应包后进行安装,需要激活码,百度激活码激活
3.激活后重启电脑,如仍不可以, 执行手动注册命令
regsvr32 "C:\Windows\SysWOW64\msjetoledb40.dll"
regsvr32 "C:\Windows\SysWOW64\msjet40.dll"
4.重启电脑后使用x86模式即可正常使用
最终解决方案
本例中问题源于未安装Jet驱动,目前官网也未提供。通过以下步骤解决:
- 下载并安装Access 2003
- 在连接字符串中明确指定Provider版本
- 切换应用程序为x86
修改后的有效连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Data\database.accdb;
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)