powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA. ADO: подключение к текстовому файлу
10 сообщений из 10, страница 1 из 1
VBA. ADO: подключение к текстовому файлу
    #36580212
АнтонM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Помогите, пожалуйста, советом. Часто, работая в Excel, мне приходится обрабатывать данные из внешних текстовых файлов. В большинстве случаев обработка сводится к составлению несложных запросов SQL. Однако для того чтобы корректно обработать данные мне приходится прибегать к посредникам: либо создавать базу Access и затем уже работать с ней, либо пересохранять текстовый файл в книгу Excel и обращаться посредством запросов уже к ней. Недостатки обоих способов очевидны. Знаю, что можно каким-то образом подключаться к текстовым файлам посредством ADO напрямую. Но, к сожалению, мне так и не удалось найти сколь-нибудь внятных разъяснений, а уж тем более примеров того, как правильно это необходимо делать. Мои попытки самостоятельно в этом разобраться, к сожалению, успехом не увенчались ...

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

Ниже пример строки подключения и команды SQL, которые я пытаюсь использовать для обработки данных внешнего табулированного текстового файла report.txt:
Код: plaintext
1.
2.
3.
4.
5.
DBPath = "D:\testADO\" ' в этой папке находится файл report.txt, являющийся БД.
CnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath & ";Extended Properties='text;HDR=YES;FMT=TabDelimited'"
SQLString = "SELECT `report`.MSISDN, Count(`report`.MSISDN) AS Количество " & _
                 "FROM `report` " & _
                 "GROUP BY `report`.MSISDN " & _
                 "ORDER BY 1"

При выполнении этого запроса возникает ошибка:
Файл '' не может быть открыт ядром базы данных Microsoft Jet. Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных.
Вместо символа ` в ссылке на таблицу использовал разные разделители (например, []), однако результат выполнения запроса тот же ...

Заранее благодарю за помощь!
...
Рейтинг: 0 / 0
VBA. ADO: подключение к текстовому файлу
    #36580235
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему апострофы в sql странные какие-то от mysql синтаксиса?
во from надо указывать имя вашего файла [report#txt]
...
Рейтинг: 0 / 0
VBA. ADO: подключение к текстовому файлу
    #36580245
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнтонM, чтобы не повторяться
Там много для Вас лишнего, но, то что Вас интересует, думаю, найдёте.
...
Рейтинг: 0 / 0
VBA. ADO: подключение к текстовому файлу
    #36580268
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у меня и с точкой сработало — select * from report.txt
...
Рейтинг: 0 / 0
VBA. ADO: подключение к текстовому файлу
    #36580316
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнтонMПри выполнении этого запроса возникает ошибка:

Файл '' не может быть открыт ядром базы данных Microsoft Jet. Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных.
Наверное, Вы открыли файл ранее на чтение или запись. Т.е., прежде чем подключаться с пом. ADO, нужно сначала его закрыть.
...
Рейтинг: 0 / 0
VBA. ADO: подключение к текстовому файлу
    #36580436
АнтонM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо всем откликнувшимся!!

Подключиться к БД и подтянуть из нее данные удалось посредством ссылки на таблицу в синтаксисе [report#txt] !

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

Заранее спасибо!!
...
Рейтинг: 0 / 0
VBA. ADO: подключение к текстовому файлу
    #36580539
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schema.ini файл вам в руки
...
Рейтинг: 0 / 0
VBA. ADO: подключение к текстовому файлу
    #36580618
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneschema.ini файл вам в руки

Можно еще добавить ссылочки:

http://msdn.microsoft.com/en-us/library/ms709353.aspx
http://msdn.microsoft.com/en-us/library/ms974559.aspx
...
Рейтинг: 0 / 0
VBA. ADO: подключение к текстовому файлу
    #36580637
АнтонM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще раз ОГРОМНЕЙШЕЕ спасибо!!!

Погрузившись в свои эксперименты, я совершенно забыл о том, что уже создавал файл schema.ini с описанием полей. :)) Собственно, в этом файле все поля как текст и были описаны. Мысль о том, что привязка идет именно к файлу со схемой, посетила, когда я обратился к другому текстовому файлу, и запрос завершился ошибкой. :)
...
Рейтинг: 0 / 0
VBA. ADO: подключение к текстовому файлу
    #36580692
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, если что то в одном schema.ini может быть описана куча файлов...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA. ADO: подключение к текстовому файлу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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