Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Специальные символы в имени файла acces 2003 / 10 сообщений из 10, страница 1 из 1
05.10.2017, 12:38
    #39531406
СергейS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Специальные символы в имени файла acces 2003
Помогите пожалуйста.
Есть переменная с именем файла
F = "Log-2017-09-26.csv"
и запрос к нему
Rs.Open "select * from '" & F & "' , cnn

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

Подскажите как побороть ???
...
Рейтинг: 0 / 0
05.10.2017, 12:41
    #39531409
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Специальные символы в имени файла acces 2003
Имена таблиц, полей, алиасы и пр. для устранения проблем подобного рода следует обрамлять квадратными скобками.
Код: vbnet
1.
Rs.Open "select * from [" & F & "] , cnn


А у Вас, с одинарными кавычками, вообще делается SELECT из строкового литерала...
...
Рейтинг: 0 / 0
05.10.2017, 14:19
    #39531489
СергейS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Специальные символы в имени файла acces 2003
так то это имя файла, его нет возможности менять, без одинарных ковычек ничего не изменяется
...
Рейтинг: 0 / 0
05.10.2017, 15:06
    #39531544
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Специальные символы в имени файла acces 2003
А как предложил Akina с квадратными скобками пробовали?
...
Рейтинг: 0 / 0
05.10.2017, 15:34
    #39531571
Специальные символы в имени файла acces 2003
Думаю, что "-" здесь ни при чем. Имя файла надо указывать либо в квадратных скобках (как вам уже советовали), либо (если нет пробелов в имени) так: Log-2017-09-26 # csv.
Другие csv файлы у вас открываются?
Если со скобками не получится - покажите строку подключения.
...
Рейтинг: 0 / 0
05.10.2017, 18:07
    #39531740
СергейS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Специальные символы в имени файла acces 2003
Если вот так то все работает
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

подскажите как правильно написать строку подключения и запрос чтобы имя файла было в переменной
...
Рейтинг: 0 / 0
06.10.2017, 11:19
    #39532039
СергейS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Специальные символы в имени файла acces 2003
Попробывал вот так
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

Помогите пожалуйста разобраться
...
Рейтинг: 0 / 0
06.10.2017, 11:43
    #39532059
Специальные символы в имени файла acces 2003
СергейS, попробуйте с другим провайдером:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
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
...
Рейтинг: 0 / 0
06.10.2017, 11:47
    #39532063
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Специальные символы в имени файла acces 2003
Сергей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")
...
Рейтинг: 0 / 0
06.10.2017, 12:10
    #39532082
СергейS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Специальные символы в имени файла acces 2003
Спасибо большое помогло использование другого провайдера
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Специальные символы в имени файла acces 2003 / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]