2015-09-15 1 views
1

Я пытаюсь сделать выбор из файла csv через ADO из excel/vba. У меня есть соединение с настройкой csv, и я пытаюсь сделать выбор через набор записей (rs).Недопустимый брекетинг ошибки имени в подключении ado к csv

Мой файл CSV имеет название "B1-D D_20150915_12345_ [31-августа-2015] .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 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 отлично работает.

Я вижу, что в этом имени есть все виды нежелательных символов - я не могу их изменить, не копируя и не переименовывая файл где-то еще, что я не хочу делать, поскольку он довольно большой.

Я надеюсь, что это просто очень простые знания, которых у меня нет - есть ли в любом случае я могу избежать имени файла? Или получить его каким-то другим способом?

ответ

0

Попробуйте поставить двойные кавычки вокруг имени рабочего листа, потому что это имеет место в нем

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) 
+0

Thanks Matthew, я получаю схожие ошибки для обоих из них: – chrisSpaceman

+0

Извините - интернет играет на работе. Помещение «вокруг всего имени файла и [] вокруг него приводит к аналогичным ошибкам. – chrisSpaceman

+0

Я бы поспорил, что это связано с пространством в этом имени файла. Пробовали ли вы скобки с одинарными кавычками и без них? – MatthewD