我有一个fild中带有双引号(“)的CSV文件。当我尝试将数据上传到记录集时遇到崩溃。我在VBA中使用了以下代码:
Dim rscsv As ADODB.Recordset
Dim cncsv As ADODB.Connection
Set cncsv = New ADODB.Connection
cncsv.ConnectionString = "Driver=Microsoft Access Text Driver (*.txt, *.csv);Dbq="C:\Test\";Extensions=csv"
cncsv.Open
Set rscsv = New ADODB.Recordset
rscsv.Open "select * from " & fileName, cncsv, adOpenStatic, _
adLockReadOnly, adCmdText
我在记录集中得到错误数据,并在错误代码“ rscsv.Open”中选择“ * * from ...”,并出现错误“ 94:无效使用Null”。在双引号和之后,所有字段都为Null值。
例如,如果我具有以下CSV数据
1 2 3 4
AAAA BB"BB 123 456
...我的代码得到后
1 2 3 4
AAAA BB Null Null
如何上传带有替换选项的数据(即类似的内容 Replace('“',''))?
答案 0 :(得分:0)
在建立连接时,请使用FMT =分隔符号。这是一个简单的示例:
cncsv.ConnectionString = "Driver=Microsoft Access Text Driver (*.txt, *.csv);" & _
"Dbq=""C:\Test\"";Extensions=csv" & _
"Extended Properties=""text;HDR=YES;FMT=Delimited"""
cncsv.Open
Set rscsv = New ADODB.Recordset
rscsv.Open "SELECT * FROM " & fileName, cncsv, adOpenStatic, _
adLockReadOnly, adCmdText
注意:不用说,但要突出显示,如果您的csv文件具有标头,则HDR = YES,否则HDR = NO。如果上述解决方案不起作用,则可能需要使用Schema.ini。