我用select area ,oldno,newno from [Sheet1$]从excel表中获取数据,但得到的数据不是excel中的全部数据,有一部分丢失就行这样
a b c
1 1 1 
1 1
1 1  
1 1
而原来是是每列每行都有值的

解决方案 »

  1.   

    原来是
    a b c
    1 1 1
    1 1 1
    1 1 1
    1 1 1
    1 1 1
    a,b,c是列名
      

  2.   

    估计问题在:Ado连接Excel串的最后一个参数值的问题。需要 =8,就是取文本的意思吧,我记得也不是很清楚了。你查一下那个连接串参数。另外,提醒一下:把Excel的单元格设置成文本尝试一下。
      

  3.   

    注意数据类型,有可能空的那些单元格里面数据类型不对,因为使用数据库访问方式,excel有一个自动数据类型识别问题,很可能是第一行数据“1”是数字,然后以下的数据都是字符串,所以无法转换,只能为空了,修改第一行数据为“c1”看看是不是这回事?
    a b c
    1 1 C1
    1 1 1
    1 1 1
    1 1 1
    1 1 1 
      

  4.   

    已经解决。原因:一方面要保持数据类型的一致性。另一方面最重要的是连接字符串中要加上SELECT *    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;IMEX=1;HDR=YES;Database=C:\test.xls', [Sheet1$])
    HDR=YES 有两个值:YES/NO,表示第一行是否字段名,默认是YES,第一行是字段名   
        其中IMEX=1 解决数字与字符混合时,识别不正常的情况.