要从一个EXCEL里读取数据保存到一个ACCESS里,我是这样做的,每次暂存款100条记录到内存,再写入ACCESS里完成后再读取下一个100条记录,可是 这样做好慢呀
有没有好的办法谢谢了

解决方案 »

  1.   

    转载:
    用delphi 的 servers中提供的AccessApplication实现Excel表导入Access。用AccessApplication 调用Access 的外部数据导入功能实现Excel导入Access。代码很简单但是有一点需要注意。代码如下:  aa.OpenCurrentDatabaseOld('c:\aa.mdb'); //打开数据库
      aa.DoCmd.TransferSpreadsheet(acImport, acSpreadsheetTypeExcel8,
           ATableName,AFileName,true,EmptyParam,EmptyParam);// 实现导入
      aa.Disconnect;//断开数据库连接注:aa为AccessApplication控件,若是Office2000,则要用(  aa.OpenCurrentDatabase('c:\aa.mdb');) //打开数据库若是office2003则用  aa.OpenCurrentDatabaseOld('c:\aa.mdb'); //打开数据库,)TransferSpreadsheet 函数声明如下:    procedure TransferSpreadsheet(TransferType: AcDataTransferType; 
                                      SpreadsheetType: AcSpreadSheetType; TableName: 
                                         OleVariant; 
                                      FileName: OleVariant; HasFieldNames: OleVariant; 
                                      Range: OleVariant; UseOA: OleVariant); safecall; TransferType:传送模式本例导入所以设置为 acImport 
    AcDataTransferType:传送数据类型 Execl8数据 cSpreadsheetTypeExcel8 
    TableName:数据库中的目标表名 
    FileName:数据文件名字,本例中Excel文件名字 
    HasFieldNames:数据文件是否包含字段名。如果包含设置true 
    Range:导入范围,可以设置Excel文件中的Sheet名。在支持officexp 时其作用,在支持office2000的好像不行。 
    UseOA:还不清楚有什么作用
      

  2.   

    要是excel中的表是简单格式的表那是很容易处理的。
    可以使用组件TBatchMove也可以直接使用Access的SQL数据导出语句实现。
      

  3.   

    一楼的方法我刚试了下,是真的好快
    学习了,可是,导入ACCESS只是我做的一个测试,
    要导入的数据库是ORACLE
    我也用到线程做,可是还是那么慢,