提示错误是:无法启动应用程序,工作文件信息丢失,或被其它用户以独占方式打开,而且一点就提示输入用户名和密码,请高手看看!
if self.OpenDialog1.Execute then
 with TAdoConnection.Create(self) do
try
  ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\a.xls;User ID=sa;Password=sa;Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False ';  Open;
  Execute('select * into dddd from [excel 8.0;data source=book1.xls].aaaa');
  Close;
finally
  free;
end;

解决方案 »

  1.   

    有ADOQuery,DBGriD,DataSource1,Buttonprocedure TForm1.Button1Click(Sender: TObject);
      var
        str,sqlstr,connstr,sheetName,filename:string;
    begin
      FileName :='d:\d.xls' ;  //文件名
      SheetName :='sheet1' ;  //表名
      ADOQuery1.Close ;
      ADOQuery1.SQL.Clear ;
      ConnStr :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';Extended Properties=Excel 8.0;Persist Security Info=False';
      ADOQuery1.ConnectionString :=ConnStr ;
      SqlStr :='Select * from ' +'[' +SheetName + '$'+']';
      ADOQuery1.SQL.Add(SqlStr) ;
      ADOQuery1.Prepared ;
      ADOQuery1.Open ;
    end;
    end.
      

  2.   

    大侠,你这个程序报错了,sheetname:='sheet1'这一行报错了,快进来看看吧!急呀!
      

  3.   

    Password=sa
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Jet OLEDB:Database Password=sa
      

  4.   

    你的表名不是這個名稱.打開你的EXcel看看。表名是不是sheet1.如果不是的話改過來。
    SheetName :='EXcel表名';  //打開的表名
      

  5.   

    procedure TForm1.DBGrid1DblClick(Sender: TObject);
    var
      myexcel:variant;
      workbook:olevariant;
      worksheet:olevariant;
      i,j,k:integer;
    begin
     try
       myexcel:=createoleobject('excel.application');
       myexcel.application.workbooks.add;
       myexcel.caption:='将数据导入到EXCEL表中';
       myexcel.application.visible:=true;
       workbook:=myexcel.application.workbooks[1];
       worksheet:=workbook.worksheets.item[1];
       except
        showmessage('EXCEL不存在!');
       end;
       i:=0;
       table1.first;
      //加表头
      for k:=0 to table1.FieldCount-1 do
        worksheet.cells[1,1+k]:=table1.fields[k].DisplayName;  //加数据
      while not table1.eof do
       begin
         inc(i);
         for j:=0 to table1.fieldcount-2 do
           worksheet.cells[i+1,j+1]:=table1.fields[j].asstring;
         table1.next;
       end;end;  
      

  6.   

    FileName :='F:\VWET3395-2.xls' ;
      SheetName :='sheet1' ;
      ADOQuery1.Close ;
      ADOQuery1.SQL.Clear ;
      ConnStr :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';Extended Properties=Excel 8.0;Persist Security Info=False';
      ADOQuery1.ConnectionString :=ConnStr ;
      SqlStr :='Select * from ' +'[' +SheetName + '$'+']' ;  ADOQuery1.SQL.Add(SqlStr) ;
      ADOQuery1.Prepared ;  ADOQuery1.Open ;
      showmessage(SqlStr);