CString tablepath,tablename;
CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY,   
"TXT Files (*.mdb)|*.mdb|All Files (*.*)|*.*||",NULL);
if(dlg.DoModal()==IDOK)
{
tablepath=dlg.GetPathName();
tablename=dlg.GetFileName();
}
else
return;
try
{
CDatabase dbTemp;
CRecordset p_Set(&dbTemp);
dbTemp.Open(NULL,false,false,tablepath);//这边的打开方式好像有问题,它会弹出设置database数据源对话框,我不想要弹出对话框,而是直接通过上面代码取得的文件路径tablepath打开我的access文件,我是新手,不太会,网上查了资料,对database.open的参数也斟酌了一下,还是无法理解,还有我在控制面板的ODBC里面也设好了数据源了。请能者为我解忧,指点我最后一段代码究竟如何写,多谢!多谢!
再有我是想直接用ODBC打开Access

解决方案 »

  1.   

    void CMy01Dlg::OnSqlConnect() 
    {
    // TODO: Add your control notification handler code here
    //初始化COM对象
    CoInitialize(NULL);
    _ConnectionPtr pConn(__uuidof(Connection));//连接对象
    _RecordsetPtr pRst(__uuidof(Recordset));//记录集对象
    _CommandPtr pCmd(__uuidof(Command));//COMMAND对象
    //设置连接字符串
    /*在VC中 连接SQl Server数据的字符串:Driver={SQL Server};Server=.;Database=test;Trusted_Connection=Yes;
    说明MySqlServer为数据库服务器名或Ip地址,MyTable为数据库表4};在VC中连接Access数据的字符串Astr.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\\SHMS.mdb;Persist Security Info=False;Jet OLEDB:Database Password=287803603");
    */
    //连接ACCESS
    //pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Persist Security Info=False;Jet OLEDB:Database Password=";

    //连接SQL SERVER   
    pConn->ConnectionString="Driver={SQL Server};Server=.;Database=mystudent;Trusted_Connection=Yes;";


    //////////////////////////////////////////////////////////////ss
    pConn->Open("","","",adConnectUnspecified);
    //连接对象查询 记录获取数据
    //方法1
    //pRst=pConn->Execute("select * from student",NULL,adCmdText);

    //方法2
    pRst->Open("select C_NAME FROM TB_MSG",_variant_t((IDispatch*)pConn),adOpenDynamic,adLockOptimistic,adCmdText);
    //方法三:
    //pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
    //pCmd->CommandText="select * from student";
    //pRst=pCmd->Execute(NULL,NULL,adCmdText); //显示数据 while(!pRst->rsEOF)
    {
    MessageBox((_bstr_t)pRst->GetCollect("C_NAME"));
    pRst->MoveNext();
    }
    //关闭记录集、连接
        pConn->Execute("update TB_MSG set C_NAME='蓝石生' where C_ID=1",NULL,adCmdText);
    pRst->Close();
    pConn->Close();
    //释放资源
    pCmd.Release();
    pRst.Release();
    pConn.Release();
    CoUninitialize();}