请问在DELPHI里怎么执行下面的语句呀
SELECT * into fwmlexcel FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="d:\fhb\ff.xls";Extended properties=Excel 8.0')...[sheet1$]

解决方案 »

  1.   

    这个,好象可以用ADOCONNECTION来直接执行SQL语句吧连接上数据源后
      

  2.   

    不过只能在MSSQL中执行,ACCESS应该不可以
      

  3.   

    已测试,在MSSQL中执行无误,在ACCESS中无法执行,因OpenDataSource是MSSQL提供的
      

  4.   

    这样试一下!
    ADOConnection1.Connected := True;
    ADOConnection1.Execute()
      

  5.   

    有三种方法法:
    1.用ADOQuery直接用以上的语句,不过,文件是保存在服务器上的.
    2.用DbGridEH的方法,文件可保存在本地procedure TFrimFiveReport.FlatSpeedButton2Click(Sender: TObject);
    begin
      inherited;
      ppReport1.Print;
    end;procedure TFrimFiveReport.FlatButton1Click(Sender: TObject);
    var
      ExpClass:TDBGridEhExportClass;
      Ext:String;
    begin  SaveDialog1.FileName :='五日报';
      if SaveDialog1.Execute then
      begin
        case SaveDialog1.FilterIndex of
          1: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
          2: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
          3: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
          4: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
          5: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
        else
          ExpClass := nil; Ext := '';
        end;
        if ExpClass <> nil then
        begin
          if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <> UpperCase(Ext) then
            SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
          try
            SaveDBGridEhToExportFile(ExpClass,DBGridEh1,SaveDialog1.FileName,true);
          except
            msshow('保存失败!');
          end; 
        end;  end;end;
    3.用OLE的方法,文件可保存在本地procedure TFrmPrintReport.DataToExcel;
    var
      I, J, K, Count: integer;
      S: string;
    begin
      Panel2.Visible :=true;
      Animate1.Active :=true;  //创建Ole对象
      try
        ExcelApplication := CreateOleObject('Excel.Application');
      except
        ExcelApplication := Null;
        Panel2.Visible :=False;
        Animate1.Active :=False;
        MSShow('请先安装MicrSoft Office Excel97/2000。');
        Exit;
      end;  ExcelApplication.Visible := False;
      try
        ExcelName:=ExcelApplication.WorkBooks.Add(ExtractFilePath(Application.ExeName)+'ReportModal\Modal.xls');
        ExcelSheet := ExcelName.Worksheets[1];
      except
        Panel2.Visible :=False;
        Animate1.Active :=False;
        MSShow('没有找到报表模板,请保证Modal.xls在程序文件的ReportModal文件夹内!');
        Abort;
      end;  try
        J := 11;    ADOQuery1.First;
        while not ADOQuery1.eof do
          begin
          ExcelSheet.cells(J,1)  := ADOQuery1.RecNo;
          ExcelSheet.cells(J,2)  := ADOQuery1.fieldbyname('OriHB').Value;
          ExcelSheet.cells(j,3)  := Trim(ADOQuery1.FieldByName('Camer').AsString );
          ExcelSheet.cells(j,4)  := Trim(ADOQuery1.FieldByName('FlightNo').AsString);
          ExcelSheet.cells(j,5)  := Trim(ADOQuery1.FieldByName('SurName').AsString);
          ExcelSheet.cells(j,6)  := Trim(ADOQuery1.FieldByName('GivenName').AsString);
          ExcelSheet.cells(j,7)  := Trim(ADOQuery1.FieldByName('PassportNo').AsString);
          ExcelSheet.cells(j,14) := Trim(ADOQuery1.FieldByName('Weight').AsString);
          inc(J);
          ADOQuery1.next;
        end;    //合并单元格
        Ranges:=ExcelSheet.range['A10: P' + inttostr(J -1)];
        //画线
        Ranges.Borders.LineStyle := 1;
      except
        MsShow('在往EXCEL写入数据时出现错误,请重新发送Email!');
        Panel2.Visible :=False;
        Animate1.Active :=False;
        abort;
      end;  try
        //保存数据
        ExcelName.SaveAs(MDReportDir+'\'+ReportName);
      except
        MSShow('无法保存数据');
        Panel2.Visible :=False;
        Animate1.Active :=False;
        abort;
      end;  //全部释放variant变量 ,否则Excel进程无法关闭
      try
        ExcelName.Close;
        ExcelApplication.Quit;
        ExcelSheet :=Unassigned ;
        ExcelName := Unassigned;
        ExcelApplication:=Unassigned;
        Ranges :=Unassigned;
      except  end;
    end;
      

  6.   

    给你个参考:
    http://www.delphibbs.com/keylife/iblog_show.asp?xid=19064