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

Помогите, пожалуйста, советом. Часто, работая в 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
15.04.2010, 12:22
    #36580235
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA. ADO: подключение к текстовому файлу
а почему апострофы в sql странные какие-то от mysql синтаксиса?
во from надо указывать имя вашего файла [report#txt]
...
Рейтинг: 0 / 0
15.04.2010, 12:23
    #36580245
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA. ADO: подключение к текстовому файлу
АнтонM, чтобы не повторяться
Там много для Вас лишнего, но, то что Вас интересует, думаю, найдёте.
...
Рейтинг: 0 / 0
15.04.2010, 12:29
    #36580268
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA. ADO: подключение к текстовому файлу
А у меня и с точкой сработало — select * from report.txt
...
Рейтинг: 0 / 0
15.04.2010, 12:46
    #36580316
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA. ADO: подключение к текстовому файлу
АнтонMПри выполнении этого запроса возникает ошибка:

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

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

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

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

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

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

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


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