第一篇: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这个文件,就会

 

 

 

 

 

 

 

 

posted @ 2013-08-04 11:29  GOD攀  阅读(526)  评论(0编辑  收藏  举报