ado连接到csv的名称错误包围无效

我试图通过从excel / vba的ADO从csv文件做一个select。 我有一个连接到一个CSV设置,并试图做一个logging集(rs)的select。

我的csv文件的名称是“B1-D D_20150915_12345_ [2015年8月31日] .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)