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

VB.NET连接Access 2010提示Provider cannot be found错误求助

错误产生原因

  • 架构不匹配:VB.NET 2008项目默认编译目标与你本地安装的Access数据库驱动架构不一致,比如项目编译为64位但驱动是32位,或反过来;你本地能正常运行的项目,编译架构和驱动架构是匹配的,所以不会报错。
  • 驱动版本号不匹配:你使用的Microsoft.ACE.OLEDB.15.0是Office 2013对应的驱动版本,你本地安装的是Access 2010,对应的ACE驱动版本号为12.0,版本号错误会导致系统找不到对应Provider。
  • Jet驱动兼容性限制:Microsoft.Jet.OLEDB.4.0是32位专属驱动,完全不支持64位程序运行,如果你的项目编译目标为64位,调用Jet驱动必然会触发报错。

解决方法

  • 首先修正连接字符串的驱动版本号,Access 2010对应正确的ACE驱动标识为Microsoft.ACE.OLEDB.12.0,修改后连接字符串为:
    con.Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Softwares\SalesPurchase.mdb")
    
  • 统一项目编译架构和驱动架构:
    打开VB.NET 2008项目,依次点击「项目」→「项目属性」→「编译」选项卡→「高级编译选项」,将「目标CPU」修改为和驱动一致的架构:32位驱动选x86,64位驱动选x64,不要使用Any CPU选项。
  • 不确定驱动架构的情况下,可以新建后缀为.udl的空白文件,双击打开后在「提供程序」列表里查看可用的Access驱动,确认存在对应版本的ACE驱动后,直接复制生成的连接字符串到代码中即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:45:04