代码如下with adoquery1 do
  close;
  adoquery1.sql.Clear;
  adoquery1.ParamCheck := false;
  adoquery1.SQL.Text :='CREATE TABLE ['+tablename+'](a1 varchar(20),a2 varchar(20),a3 varchar(20))';
  adoquery1.execsql;
  adoquery1.sql.Clear;
  adoquery1.sql.text :='INSERT A SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="d:\55.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$];';
  adoquery1.execsql;提示完以后光标就移到了 Microsoft后面,  我用的是SQL2000.  求高手解答 ,这句SQL语句在查询分析器上运行通过了。在delphi里面出错 ,在线等哈....急啊!

解决方案 »

  1.   

    前面那句['+tablename+']改成A 贴错哈
      

  2.   

    adoquery1.sql.text :='INSERT A SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="d:\55.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$];';
      adoquery1.execsql;
    delphi中想有单引号的号要用两个单引号来表示.
    adoquery1.sql.text :='INSERT A SELECT * FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="d:\55.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'')...[sheet1$];';
      adoquery1.execsql;