ADO连接打开ACCESS,catch异常返回:无效指针

ADO连接打开ACCESS,catch错误返回:无效指针
连接数据库,在自己机子上面一切正常(win7,vs2010下调试,ACCESS2007)。换其他电脑(安装ACCESS2007,xp系统),连接提示连接失败,无效指针,应该是在
m_pConnection->Open(strConnect,"","",adModeUnknown);这句出错了,但具体应该是什么错误,该怎么改,忘大神指导呀!
以下是代码!


int AdoAccess::OnInitADOConn() //连接数据库
{
::CoInitialize(NULL);
//::AfxOleInit();
try
{

m_pConnection.CreateInstance("ADODB.Connection");
//AfxMessageBox(_T("连接1"));
_bstr_t strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=order.accdb;Persist Security Info=False;";
//AfxMessageBox(strConnect);


m_pConnection->Open(strConnect,"","",adModeUnknown);

//AfxMessageBox(_T("连接3"));
// printf("连接数据库成功\n");
}
catch (_com_error e)
{
//printf("连接数据库失败\n");
AfxMessageBox(_T("连接失败"));
AfxMessageBox(e.ErrorMessage());
return 1;
}

return 0;
}

------解决方案--------------------
导入低版本的ado库,如XP系统上的
------解决方案--------------------
你应该是win7 sp1,这个是bug,微软有补丁的。打上就好了。
微软官方解释:http://support.microsoft.com/kb/2640696

补丁号:KB2640696

下载安装后,对于VC++程序,另需要更改头文件中的ADO连接为如下:

#import "c:\Program Files\Common Files\System\ado\msado60.tlb" no_namespace rename("EOF", "adoEOF")

重新编译,发布问题解决。
------解决方案--------------------
m_pConnection.CreateInstance("ADODB.Connection");返回值是什么?

m_pConnection.CreateInstance(__uuidof(Connection));试试
------解决方案--------------------
XP下,Provider=Microsoft.ACE.OLEDB.12.0,还是这个么?