第一篇:VC6.0连接Access的.mdb文件
第一步:我们新建一个MFC工程
在StdAfx.h里面添加一下引用ADO控件
1 //////access的头文件//////////////////////////////////////////////////////////////////// 2 #import "c:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADO") rename("EOF","EndofFile") 3 #import "c:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADOX") 4 //////////////////////////////////////////////////////////////////////////
然后,我们在对话框的头文件里面的类成员添加2个变量
1 /////access的头文件///////////////////////////////////////////////////////////////////// 2 public: 3 ADOX::_CatalogPtr m_pCatalog; 4 ADO::_ConnectionPtr m_pConnection; 5 //////////////////////////////////////////////////////////////////////////
最后,我们添加一下按钮事件:
1 void CMy002Dlg::OnButton1() //连接田攀的Access服务器 2 { 3 //以下代码表示得到当前可执行文件的绝对路径 4 TCHAR szPathName[MAX_PATH]; 5 GetModuleFileName(NULL, szPathName, MAX_PATH); 6 CString strPath = szPathName; 7 int nPos; 8 nPos = strPath.ReverseFind (_T('\\')); 9 strPath = strPath.Left(nPos); 10 strPath += _T("\\student.mdb"); //mdb文件的路径 11 CFileFind ff; 12 if(ff.FindFile(strPath)) //如果没有找到该数据库文件则重建此文件夹 13 { 14 AfxMessageBox(_T("已经存在数据库文件")); 15 return; 16 } 17 CString strConnection; 18 strConnection.Format(_T("Provider=Microsoft.JET.OLEDB.4.0;Data source=%s"), strPath); 19 _bstr_t strcnn(strConnection); 20 HRESULT hr = m_pCatalog.CreateInstance(__uuidof(ADOX::Catalog)); 21 if(FAILED(hr)) 22 { 23 AfxMessageBox(_T("创建ADOX实例失败")); 24 return; 25 } 26 try 27 { 28 m_pCatalog->Create(strcnn); 29 m_pConnection.CreateInstance(__uuidof(ADO::Connection)); 30 m_pConnection->Open(strcnn, _T(""), _T(""), ADO::adModeUnknown); 31 CString strSql = _T("create table StudentInfo(student_id varchar(20) not null, \ 32 student_name varchar(20) not null, score int)"); 33 m_pConnection->Execute((_bstr_t)strSql, NULL, ADO::adCmdText); 34 } 35 catch(_com_error e) 36 { 37 AfxMessageBox(_T("创建MDB文件失败")); 38 } 39 }
好了,如果程序路径下面有student.mdb这个文件,就会