void CDlgBar::WriteToSheet1(int ID,int stationNum,double date,double time,double Z)

    CDatabase database;
     CString sExcelFile = "./Debug/1.xls ";
     CString sSql;
   try {     sSql.Format("DRIVER={MICROSOFT EXCEL DRIVER (*.XLS)};DSN='';READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s", sExcelFile, sExcelFile);     if(database.OpenEx(sSql,CDatabase::noOdbcDialog)) 
     {
         sSql.Format( "INSERT INTO Sheet1   VALUES (\'%d\',\'%d\',\'%f\',\'%f\',\'%f\')",ID,stationNum,date,time,Z);
      database.ExecuteSQL(sSql);
     }
   }
catch(CDBException *error) 
{
     MessageBox(error->m_strError);
}
     database.Close(); 

调用时显示 Microsoft Jet数据库引擎找不到对象“Sheet1”我表已经建了 放在debug目录下 里面还有些数据 怎么回事

解决方案 »

  1.   

    ADO的访问excel是这个样子的.
    sSql.Format( "INSERT INTO Sheet1 VALUES (\'%d\',\'%d\',\'%f\',\'%f\',\'%f\')",ID,stationNum,date,time,Z);
    -->
    sSql.Format( "INSERT INTO [Sheet1$] VALUES (\'%d\',\'%d\',\'%f\',\'%f\',\'%f\')",ID,stationNum,date,time,Z);
    // 或者
    sSql.Format( "INSERT INTO [Sheet1$A1:IV65536] VALUES (\'%d\',\'%d\',\'%f\',\'%f\',\'%f\')",ID,stationNum,date,time,Z);
      

  2.   

    虽然是ADO的,但odbc也应该是适用的.
      

  3.   

    操作excel最好不要用数据库方式
    通过com接口是最好的方法