请教:用Text File Driver读取CSV文件,遇到变量类型不符合

zhoutiger 2003-10-16 04:09:29
代码如下:
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
...全文
59 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoutiger 2003-10-17
  • 打赏
  • 举报
回复
多谢楼上那位大头朋友。这个问题算解决了。
zhoutiger 2003-10-16
  • 打赏
  • 举报
回复
嗯。。。。楼上的也不失为一种解决办法

不过想要的是比较通用的办法,能否再比如connection或driver里面指定,让所有字段的都当作字符来处理
hhjjhjhj 2003-10-16
  • 打赏
  • 举报
回复
where cstr(icolno)='1'
zhoutiger 2003-10-16
  • 打赏
  • 举报
回复
哦。。。要结帖才能给分。还有个问题没解决呢。

先放两天好了。这个问题还有40分。

我觉得是否可以在参数中指定?
zhoutiger 2003-10-16
  • 打赏
  • 举报
回复
我倒。。。居然是这个原因,查了一下午,呵呵,多谢楼上的。送上40分

再加40分,还有
但选择某一列全部为数字的,比如icolno列
如果SQL语句写sResult = "select * from asd.csv where icolno = 1 " 的话,程序运行正常。而如果icolno里面,有一行为非数字的字符,这行将被当作字符型的,要用select... where icolno='1' 来选。

有解决的办法吗?可以把所有的都当作字符来选择,而不管是数字还是字符。
hhjjhjhj 2003-10-16
  • 打赏
  • 举报
回复
给找到了问题原因
F0110中的F 换了其它都行,就是不能F开头后面是数字的形式。
hhjjhjhj 2003-10-16
  • 打赏
  • 举报
回复
试试这个
oRs.Open "Select * From asd.csv ", _
oConn, adOpenStatic, adLockReadOnly, adCmdText
MsgBox oRs.Fields(1)
MsgBox oRs.Fields(0)

把第一列改成数字就没问题,看来这种格式只能是第一列是数字
hhjjhjhj 2003-10-16
  • 打赏
  • 举报
回复
没问题啊
zhoutiger 2003-10-16
  • 打赏
  • 举报
回复
oConn.Open里面指定文件目录
asd.csv就是那个csv文件的名称,用Text Driver的话,是应该这样写的。

如果SQL语句写sResult = "select * from asd.csv where icolno = 1 " 的话,程序运行正常。

我觉得是不是Text Driver 还可以指定一些参数。我没指定,所以出现说类型不符的错了。

射天狼 2003-10-16
  • 打赏
  • 举报
回复
sResult = "select * from asd.csv where oformname = 'F0160' "

oRs.Open sResult, oConn, adOpenStatic, adLockReadOnly, adCmdText
SQL语句FROM后面跟的应该是表名,你这是表名吗?!?

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧