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

Visual Studio 2015 VB连接Access报错:Microsoft.ACE.OLEDB.12.0未注册

解决"Microsoft.ACE.OLEDB.12.0提供程序未注册"的问题

这个报错在Access数据库连接场景里太常见了,核心原因要么是系统缺对应驱动,要么是项目平台和驱动位数不匹配,甚至可能是连接字符串写错了。我给你整理了几个一步步排查的解决办法:

1. 安装对应版本的Access Database Engine驱动

  • 先搞清楚你的系统是32位还是64位:右键「此电脑」→属性,看系统类型就行。
  • 下载Microsoft Access Database Engine 2010 Redistributable(因为你用的是12.0版本的OLEDB驱动,对应2010版的引擎):
    • 32位系统直接装32位驱动;64位系统的话,如果你的VS项目是32位(默认Any CPU可能会优先跑32位),建议装32位驱动,避免位数冲突。
    • 如果安装时弹出"无法安装32位版本,因为已安装64位Office"的提示,别慌,用管理员权限打开命令提示符,运行静默安装命令:setup.exe /passive,就能绕过这个限制。

2. 调整项目的平台目标

  • 打开你的VS2015项目,右键项目→属性→编译→高级编译选项→目标CPU:
    • 要是装的32位驱动,就选「x86」;64位驱动就选「x64」。
    • 千万别选「Any CPU」,这货容易让程序运行时自动切换到和驱动不匹配的位数,直接触发注册错误。

3. 修正数据库连接字符串

你的错误提示里好像把驱动名和数据源写混了,正确的连接字符串格式应该是这样的(用VB写的话):

Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\CUBSDatabase.accdb;"

用Application.StartupPath自动获取bin\Debug目录,避免硬编码路径出错,同时保证Provider和Data Source是分开的两个参数,别连在一起写。

4. 验证驱动是否成功注册

  • 按下Win+R输入regedit打开注册表编辑器,检查对应路径:
    • 32位驱动:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Access Connectivity Engine\Engines\ACE
    • 64位驱动:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\ACE
      如果能找到这个路径,说明驱动注册成功;找不到的话,卸载驱动重新安装一遍试试。

5. 修复Visual Studio相关组件

偶尔VS的组件损坏也会导致这类问题,你可以打开VS安装程序,选择「修改」,确保.NET Framework 4.6和「Visual Basic开发工具」这些组件都正常安装,必要时点击「修复」按钮。

按上面的步骤一步步来,应该能解决你在adt.Fill(datatable)这行代码遇到的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:27:12