不知道你的表结构是否相同
相同的话可以用queryinsert into table1 (select * from table2)或者用 tablefor i:=0 to table1.RecordCount-1 do
begin
  Table2.Append;
  Table2.Fieldbyname('Fields').asstring:=Table1.Fieldbyname('Fields').asstring
  table2.post;
  table1.next
end;

解决方案 »

  1.   

    再建一个对access的连接和adodataset
    然后把excel中的记录一条条的向里边加没有不行的道理呀
    实在不行的话把你的代码贴出来
      

  2.   

    如果不写程序,这么干吧
    将EXCEL存为DBF(EXCEL自带)
    再用DELPHI的DATA PUMP复制一下
      

  3.   

    我不知道怎么用ado和excel连接
      

  4.   

    我的解决方法:
    1 首先,你的机器上安装了office 了吗?
    2 你在delphi里可以通过ADO和你的Access里的目的表建立连接,并可以通过TADOQuery控件利用INSERT语句向表里插入数据吗?
    3 你的excel表的文件是xls文件吗?如果以上三个问题你都有肯定的回答,不需要利用ADO连接excel表,也可以通过delphi和它建立联系并读出其中的数据的。我前面做过excel数据导入oracle数据库的工作
    但首先我要确定以上三个问题,如果可能下次给出全部代码
      

  5.   

    ExcelApplication,ExcelWorkBook,ExcelBookSheet控件D5自带,直接操作你的Excel文档,一条一条的读出来,一边读一边写,不就ok了!
      

  6.   

    penelope(镁) ,你怎么不回答了啊?
    我很急啊~~~~~~~~~~````
      

  7.   

    dbpower(我想赚钱) ,你说的那三个东西怎么用啊?帮助里面也没有啊。
    他们怎么和excel表连接起来啊?
      

  8.   

    一个简单的方法,可以试试,我使用过的。哪儿不知道,可以查看Access帮助。
    var
      AA:Variant;
    begin
    ......
      try
        //创建Access Application对象,并打开Access数据库
        //sTempPath为Access数据库的路径,比如'c:\aaa.mdb'
        AA:=CreateOleObject('Access.Application');
        if not FileExists(sTempPath)
          then AA.NewCurrentDatabase(sTempPath)
          else AA.OpenCurrentDatabase(sTempPath,false);
        //开始转换,sacTableName为转换后的表名
        AA.DoCmd.TransferSpreadsheet(acImport,acSpreadsheetTypeExcel8,sacTableName,sPathNameStr,true,'');
        AA.CloseCurrentDatabase;
      except
        ShowMessage('转换过程中发生错误!');
      end;
      

  9.   

    我最近在这里发了一篇稿子将Delphi与Excel的,可以看看。不过好像格式不太好,不知道怎么搞的全乱套了,谁能给说一下为何这样?TExcelApplication1.Conncet;
    TExcelApplication1.WorkBooks.open('Excel文件名');
      

  10.   

    1 在unit的interface的uses里加入:ComObj;
    2 假设你是用 MyDealExel这个过程来处理导入的事情,那么,这样开始:
    var
      MsExcel: OleVariant;
      WBook, WSheet: OleVariant;
      theCount, i: Integer;
      SqlStr: String;
    begin
      MsExcel := CreateOleObject('Excel.Application');
      WBook := MsExcel.Application;
      WBook.Visible := False;  WBook.WorkBooks.Open('D:\Example\Test.xls'); 
      // 这里是你要打开的Excel文件的全路径名  WSheet := WBook.ActiveSheet;  theCount := 12345;  // 假设你已经知道了该Excel文件中记录的行数
       // 如果在处理的时候不确定,可以写一个小程序算出来,我的方法很笨
    {    j := 0;
        for i := 1 to WSheet.Rows.Count - 1 do
        begin
          j := j + 1;
          if Trim(WSheet.Cells[j, i].Value) = '' then Break;
        end;  }{ WSheet表示该文件中的一行,用WSheet.Cells[theRowNum,theColNum].Value 可以取出Excel文件中一个单元格的值,如:
    WSheet.Cells.[1,3].Value即第一行第三列的值 }// 进行数据的导入,一种是简单的,表结构相同的导入;一种是表结构不同,
    // 需要对数据进行处理,规范的导入,顺序也可能不一样。它们都可以通过
    // SQL语句:INSERT INTO TableName Values(Value1,Value2,...) 
    // 借助TQuery控件来实现
    // 对第一种情况,Value1就是WSheet.Cells.[theRowNum,1].Value,
    // Value2...
    // 对第二种情况,需要处理,具体根据数据库的要求
    // 处理的思想就是这样,下面就是填代码了    for i := 1 to theCount do
        begin
          DoDeal(i);
          SqlStr := ...;
        end;// 最后 
        MsExcel.Quit;
    end;希望对你有帮助。前提是你对导入前后的数据流向要清楚,还有就是Excel中有所少列记录你要数清楚啊