我的VC打不开OFFICE2000的ACCESS数据库.. 报告格式不支持,可以打开ACCESS97的,听说要下载什么补丁,下载什么补丁?在哪里下载?下载什么补丁? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 _ConnectionPtr m_pConnection;HRESULT hr; try { hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象 if(SUCCEEDED(hr)) { hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///连接数据库 ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51; } } } catch(_com_error e)///捕捉异常 { CString errormessage; errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage()); AfxMessageBox(errormessage);///显示错误信息 return FALSE; } _RecordsetPtr m_pRecordset m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT * FROM users",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); 试试 :Provider=Microsoft.Jet.OLEDB.3.51; 看可不可以! 这确实是个问题,VC通过ODBC可以访问ACCESS2000,但通过DAO不能访问我们能有什么办法呢 楼上的这Y太讨厌。Provider=Microsoft.Jet.OLEDB.3.51是不支持Access2k的,如果要支持Access2k换成Provider=Microsoft.Jet.OLEDB.4.0就可以 楼上的楼上那个B象一堆黄×。TO楼主:装win2000或者xp的升级包就可以,或者装.net framework http://vcp4.51.net/VC/DataBase.htm第4、5。如果不是用OLE DB或ADO的,还是用ACCESS 2000的工具转换为ACCESS 97格式。或用VC.NET 2003就连ACCESS XP都能打开。 VC6默认的是用DAO350(JET 3.51),因为Access2000己经使用 Jet 4.0 Engine,应该使用DAO360(JET 4.0) 最简单的方法: 在应用类的InitInstance()中加入两行即可! AFX_MANAGE_STATE(AfxGetModuleState()); AfxGetModuleState()->m_dwVersion = 0x0601; //访问Access2000,指定使用DAO360 也有人将Access2000转换成Access97 注意: (1)要有DAO360.dll [C:\Program Files\Common Files\Microsoft Shared\DAO\] (2)MFC尽量采用动态连接, 若需要静态连接则比较复杂.如果你这样编译通不过的话,那么你就需要安装 sp5 BOOL CXXXXXX::InitInstance(){ AfxEnableControlContainer(); AfxGetModuleState()->m_dwVersion = 0x0601; //添加内容. .....} 在mfc中,如何通过dll文件产生相应的lib文件 广州科泰公司 复试问题 找工作的过来看下哦 主管也来看下 最好人力资源的也来看下 ftp 文件上传 关于VC图像处理的问题,急求 为何我主菜单的消息被一个视图接收了? 把VC++6.0生成的EXE反编译成VC++代码并非不可能的任务,欲图大事者可与我联系. 潘老师聊天进行中…… 请问大侠: 为什么我这一段代码 老是说找不到声明呢?? 如何将一个CString变量赋给一个char型数组 控件中获得IE中的路径 图元文件和位图文件是什么区别啊 动态创建的对象怎么引用
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51; }
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
return FALSE;
}
_RecordsetPtr m_pRecordset
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("SELECT * FROM users",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
我们能有什么办法呢
Provider=Microsoft.Jet.OLEDB.3.51是不支持Access2k的,如果要支持Access2k换成
Provider=Microsoft.Jet.OLEDB.4.0就可以
TO楼主:装win2000或者xp的升级包就可以,或者装.net framework
第4、5。
如果不是用OLE DB或ADO的,还是用ACCESS 2000的工具转换为ACCESS 97格式。或用VC.NET 2003就连ACCESS XP都能打开。
最简单的方法:
在应用类的InitInstance()中加入两行即可!
AFX_MANAGE_STATE(AfxGetModuleState());
AfxGetModuleState()->m_dwVersion = 0x0601; //访问Access2000,指定使用DAO360
也有人将Access2000转换成Access97
注意:
(1)要有DAO360.dll [C:\Program Files\Common Files\Microsoft Shared\DAO\]
(2)MFC尽量采用动态连接, 若需要静态连接则比较复杂.如果你这样编译通不过的话,那么你就需要安装 sp5
{
AfxEnableControlContainer();
AfxGetModuleState()->m_dwVersion = 0x0601; //添加内容. .....
}