Sql ado连接到csv时名称错误的括号无效

Sql ado连接到csv时名称错误的括号无效,sql,excel,vba,ado,Sql,Excel,Vba,Ado,我正试图通过excel/vba中的ADO从csv文件中进行选择。我已经连接到csv设置,正在尝试通过记录集(rs)进行选择 我的csv文件名为“B1-D D_20150915_12345_[31-Aug-2015].csv”(由其他系统生成的名称,我无法更改) 我的select/rs.open如下所示: sql = "select * from '" & strFileName & "' where [Company Code] = 'GBHQ'" sql = sql &am

我正试图通过excel/vba中的ADO从csv文件中进行选择。我已经连接到csv设置,正在尝试通过记录集(rs)进行选择

我的csv文件名为“B1-D D_20150915_12345_[31-Aug-2015].csv”(由其他系统生成的名称,我无法更改)

我的select/rs.open如下所示:

 sql = "select * from '" & strFileName & "' where [Company Code] = 'GBHQ'"
 sql = sql & " and  [Item Type] = 'BAL'"

 Call rs.Open(sql, cn, adOpenKeyset)
这将提供以下sql:

 select * from B1-D D_20150915_12345_[31-Aug-2015].csv where [Company Code] = 'GBHQ' and  [Item Type] = 'BAL'
当我运行此操作时,会收到一条错误消息,上面说:

 Unable to import Data
 Invalid bracketing of name "B1-D D_20150915_12345_[31-Aug-2015].csv"
该错误肯定与文件名有关,好像我将其更改为类似“text.csv”的内容,那么rs.open就可以正常工作

我可以看到文件名中有各种各样的令人讨厌的字符——如果不将文件复制/重命名到其他地方,我就无法更改它们,因为文件太大了,我不想这样做


我希望这只是一些我没有的非常简单的知识-有没有我可以转义的文件名?还是通过其他途径

请尝试在工作表名称周围加双引号,因为工作表名称中有空格

sql = "select * from '" & """" & strFileName & """" & "' where [Company Code] = 'GBHQ'"
sql = sql & " and  [Item Type] = 'BAL'"

Call rs.Open(sql, cn, adOpenKeyset)
或者你可能需要用括号括起来

sql = "select * from '[" & strFileName & "]' where [Company Code] = 'GBHQ'"
sql = sql & " and  [Item Type] = 'BAL'"

Call rs.Open(sql, cn, adOpenKeyset)

请尝试在工作表名称周围加上双引号,因为其中有空格

sql = "select * from '" & """" & strFileName & """" & "' where [Company Code] = 'GBHQ'"
sql = sql & " and  [Item Type] = 'BAL'"

Call rs.Open(sql, cn, adOpenKeyset)
或者你可能需要用括号括起来

sql = "select * from '[" & strFileName & "]' where [Company Code] = 'GBHQ'"
sql = sql & " and  [Item Type] = 'BAL'"

Call rs.Open(sql, cn, adOpenKeyset)

谢谢Matthew,我在这两个方面都遇到了类似的错误:对不起,互联网在工作中起作用了。在整个文件名和[]周围放置“标记”在它周围都会产生类似的错误。我仍然敢打赌,这与文件名中的空格有关。你是否尝试过带单引号和不带单引号的方括号?你能暂时重命名该文件吗?我想我可以这样做-复制它并重命名。其他人使用它并依赖于名称格式,因此我无法重命名。谢谢你的帮助!谢谢Matthew,我很抱歉这两个文件都出现了类似的错误:对不起,互联网在起作用。在整个文件名周围加上“和”[]都会产生类似的错误。我敢打赌,这与文件名中的空格有关。你试过带单引号和不带单引号的方括号吗?你能暂时重命名文件吗?我想我可以这样做-复制它并重命名。其他人使用它并依赖于名称格式,因此我无法重命名。谢谢你的帮助!