你根本没必要用ado去读excel.其实你的command3用dao已经可以了如果你非ado,自己看吧:http://www.xrss.cn/Info/15307.Html

解决方案 »

  1.   

    多谢 "daisy8675"的支持。
    其实我并不在乎ADO还是DAO问题是用这两种办法都数据没读全。很多号码都没有读进来。
      

  2.   

    用这种方法打开EXCEL试试:
    connexcel.open "Data Provider=MSDASQL.1;driver=Microsoft Excel Driver (*.xls);DBQ=" & sfile &"
      

  3.   

    daisy8675 的方法有错误提示,
    请问要执行这两句要引用什么类型的函数?
    Dim obj As Read_Files.CReadFile
    Set obj = New Read_Files.CReadFile
      

  4.   

    你有没有想过直接 CreateObject("Excel.Application") ?
    没必要绕个弯去用ado 或dao.
      

  5.   

    ADO 或 DAO 我都没有用过。
    要是我遇到这个需求,我考虑的就是 Excel.Application
      

  6.   

    我看了一下你的文件,准确的说,你的问题是出在 Excel 文件的单元格格式上。
    -------------------------
    要求: 
         不能用excel或第三方软件编辑原附加的excel文件只能用VB来处理。 
    -------------------------
    这句话是无理要求。ADO 使用要遵循一定规范的,你自己不守规则,ADO 没办法帮你处理。
    办公号码 那个字段,在Excel 里存在两种数据类型,Number 和Text,我看了一下 ADO.Recordset 处理后的结果是当Double 处理了,那你原来是Text 的就为空了。我的建议是在Excel 里把该字段全部设成 Text,选择改字段,Data 菜单,text to columns,照着做,类型设为Text。
      

  7.   

    to gracexu 
    这个表是用户给的,其实我也不知道他怎么搞出来的.这个只是个例子程序,另外我们也不知道真正的用户会怎么填写表里的内容,如果直接输入那我的表全部都已经设置好了"TEXT",但是用户要是用粘贴的办法来填写数据我们就没有办法知道了.所以只能靠自己的程序来判断,可这两种办法都读不进来.有没有第三种办法的完整例子程序.正如Chen8013 说的办法,能否给个完整的例子程序,如果用Chen8013 的办法好象客户机上一定要安装excel把.
      

  8.   

    在连接字符串里面加一个属性 IMEX=1ConnExecl.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & sFile & ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"
      

  9.   

    to guolibin
    你写的倒是把数据都读出来了.但是后半截数据全部都错了.
    同事6 测试20 测试20 35 8.88889E+007
    同事7 测试21 测试21 36 8.88889E+007
    同事8 测试22 测试22 37 8.88889E+007 
    同事9 测试23 测试23 38 8.88889E+007 
    同事10 测试24 测试24 39 8.88889E+007 
    同事11 测试25 测试25 40 8.88889E+007 
    测试26 8.88889E+007 
    测试27 8.88889E+007 
    测试28 8.88889E+007 有没有办法在没有度数据之前先把字段转换成文本型字段,
      

  10.   

    根据你的原理我改了一下,  
    ConnExecl.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & sFile & ";Extended Properties='Excel 8.0;IMEX=1'"
    解决问题了.