Access/Excel 2010数据库格式异常及ADODB连接运行时错误求助
解决Excel 2010通过ADODB连接Access 2010时的运行时错误'-2147467259 (8004005)'
这个错误我在类似的Office 2010环境下碰到过好几次,结合你服务器只部署了Office 2010的情况,大概率是连接配置、权限或者驱动兼容性问题,给你几个针对性的排查和解决步骤:
检查ADODB连接字符串是否正确
Access 2010需要使用ACE OLEDB驱动,正确的连接字符串格式应该是:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Path\To\Your\Database.accdb;Persist Security Info=False;注意几个关键细节:
- 确认
Data Source的路径完全正确,包含完整的文件名和后缀(.accdb或.mdb) - 如果路径包含空格,要把整个路径用双引号括起来,比如
Data Source="C:\My Databases\db.accdb" - 不要混用旧的Jet驱动(Microsoft.Jet.OLEDB.4.0),它不支持Access 2007及以后的数据库格式
- 确认
验证文件和文件夹权限
运行Excel文件的账户(比如服务器本地账户、域账户,或是任务计划的执行账户)需要具备以下权限:- 读取目标Access数据库文件的权限
- 读取数据库所在文件夹的权限(即使文件权限已赋予,没有文件夹权限也会触发权限类错误)
你可以右键文件夹→属性→安全选项卡,添加对应账户并赋予读取和执行、列出文件夹内容、读取权限
确保32位/64位环境完全匹配
Office 2010分32位和64位版本,ACE驱动的位数必须和Excel的位数完全一致:- 可以在Excel中点击「文件」→「帮助」查看版本信息,确认是32位还是64位
- 如果手动安装过不同位数的驱动导致冲突,卸载错误位数的驱动,重新安装对应Office版本的ACE驱动(Office 2010默认会安装匹配位数的驱动)
修复可能损坏的Access数据库
数据库文件损坏也会导致连接失败,你可以:- 在服务器上用Access 2010打开该数据库
- 点击「文件」→「信息」→「压缩和修复数据库」
- 修复完成后再用Excel重新尝试连接
重新注册ACE驱动
若驱动的注册信息损坏,可通过管理员命令提示符重新注册:- 32位Office:运行
regsvr32 "C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL" - 64位Office:运行
regsvr32 "C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL"
执行后会弹出注册成功的提示,重启Excel后再重试连接
- 32位Office:运行
你可以按这个顺序逐一排查,一般前三个步骤就能解决大部分问题。
内容的提问来源于stack exchange,提问作者PhoenixFly
相关产品推荐
相关产品推荐

