连接字符串:
  Batchdata_Connection.Close;
  str:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+batchdatafile+';Mode=Share Deny None;Extended Properties=excel 8.0;Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path=""';
  str:=str+';Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";';
  str:=str+'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB: Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
  Batchdata_Connection.ConnectionString:=str;
  Batchdata_Connection.LoginPrompt:=False;
  Batchdata_Connection.Open;
  sqltxt:='select * FROM [sheet1$] ';
  LinkExcel_Qr.SQL.Add(sqltxt);
  LinkExcel_Qr.Open;
如果excel记录不多的话就没问题 但记录多了 就会出现有几条记录的单元格变为空了 但excel的对应单元格是有值的 发现这问题时 奇怪得差点吐血~~~~~~~~~~

解决方案 »

  1.   

    你说的多是什么程度,我也写过一个从300多个EXCEL表中读取数据到ACCESS中的程序.用线程写,很正常.
    每个EXCEL表大约是15M左右,第个表里取出26000条左右记录.
      

  2.   

    我也曾遇过这样德问题, ms sqlserve7.0 yong dts导出一个表,大约二万条以后就没有了,
      

  3.   

    to zoom9002(venson):
      我用adoquery读了800条记录就有这种情况 用线程写怎么写 能共享一下方法吗
      

  4.   

    我也是用ADOQuery直接读的Excel。但ADOQuery连接的ADOConnection对象是连接的本机的Access数据库。
    只是在SQL时写成:
    SELECT excel.* FROM [Excel 8.0; Database=' + AppPath + '].[SheetName$] AS exce
    然后在WHERE中加入你要读入的数据的条件。
    这种方法就是在加载Excel文件时会费些时间。不过在我的程序中,这句话要查Access中一个表的字段和Excel中的一个表的一些字段,结果放在一起。所以这种方法可能会比较快。我试过用你的方法查出一个Execl表,然后与另一个连接其它数据库中一个表的Query对传数据。速度没有现在的这种方法快。
      

  5.   

    我翻了DFW的帖子 竟然有人有同样问题  现在我不知道该找ADOQuery(D7),还是excel(office 2000) 还是Microsoft.Jet.OLEDB.4.0的问题 大家给点意见啊 谢谢
      

  6.   

    用它试试
    ELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
      

  7.   

    我也遇到类似的问题。一个Excel2000的文件,读出来有几个单元格无为空,但明明文件中有值。后来用office xp打开该文件,office xp提示哪个几单元格数据存放有问题(在单元格的左上方有一绿色三角形),就哪几个单元格的值无法读出。好像与数据量无关,而是与格式有关。后来把格式调整过就读进了。不过始终麻烦,后不用ADO,改为用ole的方式,解决。
      

  8.   

    To kzy7517(kzy7517)
    应该是这个原因.我最开始读少量Excel数据时也遇到过,就是因为那个单元格带个小三角.
      

  9.   

    Excel 2000的问题吗? 
    to:kzy7517 怎样调整格式?
      

  10.   

    转用OLE解决问题 但速度有点慢 我是一个单元格赋值的汗  ^_-!!!