在delphi中如果实现把ACCESS数据表转化为EXCEL表格形式?哪个组件有此功能,(TbatchMove组件行吗?)

解决方案 »

  1.   

    导入与导出,你试一下;acStore: TADOConnection;
    ...
    procedure TfrmEhlib.btnToExcelClick(Sender: TObject);
    var
      fName: string;
    begin
      fName := ExtractFilePath(Application.ExeName) + 'store.xls';
      if FileExists(fName) then DeleteFile(fName);
      try
        acStore.Execute('select * into [Excel 8.0; Database=' + fName + '].[sheet1] from stable');
        MessageBox(self.Handle, '数据已成功导出为store.xls', '提示', mb_IconInformation + mb_Ok);
      except
        MessageBox(self.Handle, '数据导出失败!', '提示', mb_IconInformation + mb_Ok);
      end;
    end;procedure TfrmEhlib.btnFromExcelClick(Sender: TObject);
    var
      tName: TStrings;
    begin
      if not FileExists(ExtractFilePath(Application.ExeName) + 'store.xls') then Exit;
      tName := TStringList.Create;
      acStore.GetTableNames(tName, false);
      if tName.IndexOf('sExcel') >= 0 then
        acStore.Execute('drop table sExcel');
      acStore.Execute('select * into sExcel from [Excel 8.0; Database=' + ExtractFilePath(Application.ExeName)+ 'store.xls' + '].[sheet1$]');
      MessageBox(self.Handle, 'Excel已成功导入表sExcel', '提示', mb_IconInformation + mb_Ok);
      tName.Free;
    end;
      

  2.   

    ADO指向EXCEL:
    ADOQUERY:
    select * into XLSFILE from TABLENAME in "d:\TEMP\123.mdb" "jet 3.x;"
      

  3.   

    用ado分别连接access和excel,然后想怎么办就随便了,其连接字符串如下:
    access:
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:Database Password=MyDbPassword;
    excel:
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"