欢迎使用CSDN-markdown编辑器

最近,在一个项目中使用vs2012连接Access2013数据库时发生了错误,无法连接上,特把解决方法写出来,希望能帮到有需要的人。

先介绍一下我的环境,系统:window8(x64),vs2012,Access2013(x64),使用的技术MFC+ADO。

连接代码:

try
{
    m_pConnection.CreateInstance(__uuidof(Connection));//"ADODB.Connection"
    m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=PatientInformation.accdb;Persist Security Info=False","","",adModeUnknown);
}
catch(_com_error& e)
{
     CString errormessage;
     errormessage.Format(_T("连接数据库失败!\r\n错误信息:%s"),e.ErrorMessage());
     AfxMessageBox(errormessage);//显示错误信息
     return FALSE;
}

在连接时,提示错误代码为0x800A0E7A,通过百度获知此错误为ADO找不到指定的提供者 ,是数据库连接或配置出错了。我重新下载了Access2010的引擎,32位的无法安装,64位的安装成功。但依然还是这个错误。有网友也表示,在64位系统下,如果安装的是32位的Access能连接成功,但64位的Access就无法连接。网上解释说,在用vs开发32位应用程序时,会调用32位Ado库和32位的access引擎,但本机安装了64位Access后,引擎为64,且无法同时安装32位与64位Access或引擎。

难道得卸载64位office安装32位吗?这太折腾了。

几经寻找,终于获得解决方法。

原文(英语)连接:http://blog.codefluententities.com/2011/01/20/microsoft-access-database-engine-2010-redistributable/

我简要介绍一下步骤:

1、去M$官网上下载Access2013引擎(32位的)链接:http://www.microsoft.com/zh-CN/download/details.aspx?id=13255,点下载会让你选择,选择AccessDatabaseEngine.exe,这是32位的。

2、用管理员权限启动CMD,转到你下载的路径,然后执行命令:AccessDatabaseEngine.exe /passive,带上这个/passive选项就会强制安装。安装过程和安装结束都不会有提示。

3、试一下您的代码,现在应该能连接了,如果您没遇上其他提示或错误。

enjoy it!

本篇博客为转载,原帖地址:http://m.blog.csdn.net/blog/u010891996/12522911

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值