代码如下:
    oConn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
        "Dbq=F:\PROJECT\SUZUKI_K6A\Learn\;" & _
        "Extensions=csv;"
    sResult = "select * from asd.csv where oformname = 'F0160' "
    
    oRs.Open sResult, oConn, adOpenStatic, adLockReadOnly, adCmdText运行到最后一行的时候,报类型不符合,不知道怎么回事。请各位指点一二CSV 文件如下:
oformname,sdisplaycontrol,icolno
F0110,DataSheet,0
F0110,DataSheet,1

解决方案 »

  1.   

    sResult = "select * from asd.csv where oformname = 'F0160' "
        
        oRs.Open sResult, oConn, adOpenStatic, adLockReadOnly, adCmdText
    SQL语句FROM后面跟的应该是表名,你这是表名吗?!?
      

  2.   

    oConn.Open里面指定文件目录
    asd.csv就是那个csv文件的名称,用Text Driver的话,是应该这样写的。如果SQL语句写sResult = "select * from asd.csv where icolno = 1 " 的话,程序运行正常。我觉得是不是Text Driver 还可以指定一些参数。我没指定,所以出现说类型不符的错了。
      

  3.   

    试试这个
     oRs.Open "Select * From asd.csv ", _
                   oConn, adOpenStatic, adLockReadOnly, adCmdText
    MsgBox oRs.Fields(1)
    MsgBox oRs.Fields(0)把第一列改成数字就没问题,看来这种格式只能是第一列是数字
      

  4.   

    给找到了问题原因
    F0110中的F 换了其它都行,就是不能F开头后面是数字的形式。
      

  5.   

    我倒居然是这个原因,查了一下午,呵呵,多谢楼上的。送上40分再加40分,还有
    但选择某一列全部为数字的,比如icolno列
    如果SQL语句写sResult = "select * from asd.csv where icolno = 1 " 的话,程序运行正常。而如果icolno里面,有一行为非数字的字符,这行将被当作字符型的,要用select... where icolno='1' 来选。有解决的办法吗?可以把所有的都当作字符来选择,而不管是数字还是字符。
      

  6.   

    嗯。楼上的也不失为一种解决办法不过想要的是比较通用的办法,能否再比如connection或driver里面指定,让所有字段的都当作字符来处理