void CAdoDlg::OnExecl() 
{
// TODO: Add your control notification handler code here
CoInitialize(NULL); _ConnectionPtr m_eConn;
    AfxOleInit();  
    m_eConn.CreateInstance("ADODB.Connection");  
    try{  
    m_eConn->Open("DSN=Excel Files;DBQ=C:\test.xls;DefaultDir=C:;DriverId=790;MaxBufferSize=2048;PageTimeout=5;","","",adConnectUnspecified); 
//"DRIVER={Sybase System 11};SRVR=server_tl;DB=TLSS_JXC;UID=sa;Pwd=DHHZDHHZ;"这个是Sysbase11.92的连接字串
// if(m_eConn!=0)
 
AfxMessageBox("连接Excel2003test成功");
}
   catch(_com_error e){  
       AfxMessageBox("连接数据库失败!");  
   }     CoUninitialize();
}
其中这个DSN=Excel Files;DBQ=C:\test.xls;DefaultDir=C:;DriverId=790;MaxBufferSize=2048;PageTimeout=5;
测试过,是通的,为什么加入程序中不通呢

解决方案 »

  1.   

    http://www.vckbase.com/code/findcode.asp?mclsid=&sclsid=&keyword=%CE%C4%BC%FE&page=3
    看看这个例子。
      

  2.   

    以前看到的一个评论,不知对你有没有用:转载:vc使用ODBC读excel找不到表的解决办法
        Excel工作簿要通过ODBC进行数据库操作,确实需要一点与其他数据库(例如:ACCESS,FORPRO)不同的设置. 
        因为表名不等于SHEET1,也不等于SHEET2,SHEET3。 
        要访问表 , 必须先定义一个表。 
        方法如下: 
        运行Microsoft Excel , 打开要操作的工作簿, 左键拖拽,选取要定义成为表的区域, 从菜单中选择'插入 '->'名称'->'定义' 
         '定义名称'对话框出现后,键入表的名字, 
         例如:STUDENTS,存盘退出。 
        这样,你就可以在VC中,使用象SELECT * FROM STUDENTS 这样的SQL语句了。试试看
        如果不行,重复上面操作,看看定义表加进入没有
      

  3.   

    LBpeking我要是的把Excel2003的一个文件当作一个数据库,用ADO的方法去连接它.还没有到读数据的这一步,我只要连接成功.
      

  4.   

    新建"a.txt",把后缀名换成"udl"也就是"a.udl"双击,配置,测试连接成功后,用记事本打开,其中的就是连接字符串