我原来的方法:
    建两个ADOConnection,分别连接Excel和Access
    建两个ADOQuery,ADOQuery1读取Excel中的一个表,再通过与Access连接的ADOQuery2写到Access中去。Excel表的记录大概是26000多条,字段大概有30多个,这种方法导入一次就需要几分钟时间,很慢。因为实际应用中,一次要连续导入十几个这样的Excel表。    不知高手们有什么更快的方法完成这个功能。或者可不可以用一个ADOQuery加一条Sql来实现?

解决方案 »

  1.   

    其实也不是全都写到Access里去,而是在Access里有一个List表,是一个名称列表。导入原则就是把Excel表里'名称'字段的值在Access的List表里存在的才导入。
      

  2.   

    呵呵,问题解决了,用SQL先把符合条件的数据读出来,再写到Access数据库,速度比我原来的方法快了好几倍。
      

  3.   

    导入我没试过,但关于excel的操作我一般都用XlsReadWriteII这个控件,可以不用ole,Ado直接打开excel文件,而且速度极快!他的帮助也可下的,你可以试试!记着,写代码时它行列是反着写的
      

  4.   

    http://www.delphibbs.com/delphibbs/dispq.asp?lid=1691966
      

  5.   

    谢谢各位,我用的就是ADOQuery连Access数据库,然后直接写
    select * into <table name> from [excel 8.0;database=<filename>].[<sheetname>$]
    速度很快,就是读Excel表时内存占用很大.