Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Специальные символы в имени файла acces 2003  [new]
СергейS
Member

Откуда:
Сообщений: 5
Помогите пожалуйста.
Есть переменная с именем файла
F = "Log-2017-09-26.csv"
и запрос к нему
Rs.Open "select * from '" & F & "' , cnn

запрос ругается на недопустимое имя файла (подозреваю что на символ "-" в имени файла)

Подскажите как побороть ???
5 окт 17, 12:38    [20845053]     Ответить | Цитировать Сообщить модератору
 Re: Специальные символы в имени файла acces 2003  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 16295
Имена таблиц, полей, алиасы и пр. для устранения проблем подобного рода следует обрамлять квадратными скобками.
Rs.Open "select * from [" & F & "] , cnn

А у Вас, с одинарными кавычками, вообще делается SELECT из строкового литерала...
5 окт 17, 12:41    [20845064]     Ответить | Цитировать Сообщить модератору
 Re: Специальные символы в имени файла acces 2003  [new]
СергейS
Member

Откуда:
Сообщений: 5
так то это имя файла, его нет возможности менять, без одинарных ковычек ничего не изменяется
5 окт 17, 14:19    [20845433]     Ответить | Цитировать Сообщить модератору
 Re: Специальные символы в имени файла acces 2003  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 3845
А как предложил Akina с квадратными скобками пробовали?
5 окт 17, 15:06    [20845609]     Ответить | Цитировать Сообщить модератору
 Re: Специальные символы в имени файла acces 2003  [new]
Анатолий ( Киев )
Guest
Думаю, что "-" здесь ни при чем. Имя файла надо указывать либо в квадратных скобках (как вам уже советовали), либо (если нет пробелов в имени) так: Log-2017-09-26#csv.
Другие csv файлы у вас открываются?
Если со скобками не получится - покажите строку подключения.
5 окт 17, 15:34    [20845718]     Ответить | Цитировать Сообщить модератору
 Re: Специальные символы в имени файла acces 2003  [new]
СергейS
Member

Откуда:
Сообщений: 5
Если вот так то все работает
cnn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;" & _
"Extended Properties='Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"DriverId=27;Extensions=txt,csv,tab,asc;FIL=text;" & _
"MaxBufferSize=2048;PageTimeout=5" & _
"DefaultDir=" & DatabaseFullPath & ";" & _
"Data Source = " & DatabaseFullPath & "Log-2017-09-26.csv'"
cnn.CursorLocation = adUseClient
cnn.Open

Rs.Open "select * from " & DatabaseFullPath & "[Log-2017-09-26.csv]", cnn

подскажите как правильно написать строку подключения и запрос чтобы имя файла было в переменной
5 окт 17, 18:07    [20846210]     Ответить | Цитировать Сообщить модератору
 Re: Специальные символы в имени файла acces 2003  [new]
СергейS
Member

Откуда:
Сообщений: 5
Попробывал вот так
cnn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;" & _
"Extended Properties='Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"DriverId=27;Extensions=txt,csv,tab,asc;FIL=text;" & _
"MaxBufferSize=2048;PageTimeout=5" & _
"DefaultDir=" & DatabaseFullPath & ";" & _
"Data Source = [" & F & "] '"
cnn.CursorLocation = adUseClient
cnn.Open

Rs.Open "select * from [" & F & "] ", cnn

если F="D:\Log.csv" все работает
если F="D:\Log-2017-09-26.csv" Rs.Open ругается - [Microsoft][Драйвер ODBC Текст]объект 'D:\Log-2017-09-26.csv' не найден ядром базы данных Microsoft Jet

Помогите пожалуйста разобраться
6 окт 17, 11:19    [20847481]     Ответить | Цитировать Сообщить модератору
 Re: Специальные символы в имени файла acces 2003  [new]
Анатолий ( Киев )
Guest
СергейS, попробуйте с другим провайдером:
strPathtoTextFile = "C:\Databases\"

objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & strPathtoTextFile & ";" & _
          "Extended Properties=""text;HDR=YES;FMT=Delimited"""

objRecordset.Open "SELECT * FROM PhoneList.csv", _
          objConnection, adOpenStatic, adLockOptimistic, adCmdText
6 окт 17, 11:43    [20847570]     Ответить | Цитировать Сообщить модератору
 Re: Специальные символы в имени файла acces 2003  [new]
guest_rusimport
Guest
СергейS
Попробывал вот так
cnn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;" & _
"Extended Properties='Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"DriverId=27;Extensions=txt,csv,tab,asc;FIL=text;" & _
"MaxBufferSize=2048;PageTimeout=5" & _
"DefaultDir=" & DatabaseFullPath & ";" & _
"Data Source = [" & F & "] '"
cnn.CursorLocation = adUseClient
cnn.Open

Rs.Open "select * from [" & F & "] ", cnn

если F="D:\Log.csv" все работает
если F="D:\Log-2017-09-26.csv" Rs.Open ругается - [Microsoft][Драйвер ODBC Текст]объект 'D:\Log-2017-09-26.csv' не найден ядром базы данных Microsoft Jet

Помогите пожалуйста разобраться

кажись имя файла должно быть не более восьми символов (сократите до "D:\Log-2017.csv" и посмотрите, что будет, в крайнем случае можно именовать так "D:\20170926.csv")
6 окт 17, 11:47    [20847591]     Ответить | Цитировать Сообщить модератору
 Re: Специальные символы в имени файла acces 2003  [new]
СергейS
Member

Откуда:
Сообщений: 5
Спасибо большое помогло использование другого провайдера
6 окт 17, 12:10    [20847717]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить