Как подменить ODBC DSN в Excel файле?

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
CaptainBlack
Маньяк
Сообщения: 2063
Зарегистрирован: 07 июл 2008, 11:58
Откуда: Россия

Как подменить ODBC DSN в Excel файле?

Сообщение CaptainBlack »

По работе часто приходится импортировать в Excel, информацию из Access файлов с абсолютно одинаковой структурой. Только сами данные и количество записей разные.

Импортировать нужно именно в Excel - пожалуйста не предлагайте создание отчетов непосредственно в Access.
Данные импортируются из нескольких таблиц одной Access БД - каждая таблица должна импортироваться в отдельный worksheet.

Q: Как сделать в Excel шаблон отчета, с возможностью "на лету" выбирать ODBC DSN из которого будут импортироваться данные?

Что то типа такого:
1. открыл шаблонную workbook в Excel
2. выбрал ODBC DSN по имени (scroll list?)
3. данные из БД закачались в Excel
4. сохранил шаблонный Excel workbook под новым именем и переслал другому человеку.
5. goto step 1
pek
Пользователь
Сообщения: 54
Зарегистрирован: 09 дек 2008, 15:38

Re: Как подменить ODBC DSN в Excel файле?

Сообщение pek »

Можно рученками заполнить список источников данных и выбирать из него.
Или список постоянно меняется (дополняется)?
CaptainBlack
Маньяк
Сообщения: 2063
Зарегистрирован: 07 июл 2008, 11:58
Откуда: Россия

Re: Как подменить ODBC DSN в Excel файле?

Сообщение CaptainBlack »

pek писал(а):Можно рученками заполнить список источников данных и выбирать из него.
Или список постоянно меняется (дополняется)?
ну да...иногда добавляется новый файл (и DSN соответственно), иногда приходит новый Access файл для уже существующего DSN
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Re: Как подменить ODBC DSN в Excel файле?

Сообщение Yury »

я как-то в подобных целях использовал неэлегантное, но работавшее решение-
тупо менял имя нужного мне источника данных на использовавшееся в икселевском database query и жал кнопку refresh data
voila tout!

по хорошему можно было б и на vba формочку написать,
которая б меняла источник данных на выбранный из списка,
но было лениво
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Re: Как подменить ODBC DSN в Excel файле?

Сообщение Yury »

pek писал(а):Можно рученками заполнить список источников данных и выбирать из него.
Или список постоянно меняется (дополняется)?
несложно получить этот список вызвав odbc32.dll из кода формы

или скачать odbctool.dll, с ней еще проще
pek
Пользователь
Сообщения: 54
Зарегистрирован: 09 дек 2008, 15:38

Re: Как подменить ODBC DSN в Excel файле?

Сообщение pek »

Но когда появляется еще одна аксессовская база, то все равно источник данных то приходиться ручонками добавлять.
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Re: Как подменить ODBC DSN в Excel файле?

Сообщение Yury »

pek писал(а):Но когда появляется еще одна аксессовская база, то все равно источник данных то приходиться ручонками добавлять.
не обязательно ручонками
можно, скажем, при запуске формы сканить содержимое определенной папки и если там появился новый mdb файл - автоматически генерить для него system dsn (используя ODBCCP32.DLL), ну и в список выбора добавлять, разумеется

хотя на самом деле DSN - это вообще лишний шаг
проще заливать данные напрямую из аксеса через ADODB соединение
(если только DSN не нужен еще для чего нибудь)
Последний раз редактировалось Yury 11 мар 2009, 16:01, всего редактировалось 1 раз.
pek
Пользователь
Сообщения: 54
Зарегистрирован: 09 дек 2008, 15:38

Re: Как подменить ODBC DSN в Excel файле?

Сообщение pek »

В условии не сказано что все базы лежат в одной папке (одном компутере, одном сервере и т.п.) :)
CaptainBlack
Маньяк
Сообщения: 2063
Зарегистрирован: 07 июл 2008, 11:58
Откуда: Россия

Re: Как подменить ODBC DSN в Excel файле?

Сообщение CaptainBlack »

pek писал(а):В условии не сказано что все базы лежат в одной папке (одном компутере, одном сервере и т.п.) :)
Один ПК - разные папки
CaptainBlack
Маньяк
Сообщения: 2063
Зарегистрирован: 07 июл 2008, 11:58
Откуда: Россия

Re: Как подменить ODBC DSN в Excel файле?

Сообщение CaptainBlack »

Yury писал(а):я как-то в подобных целях использовал неэлегантное, но работавшее решение-
тупо менял имя нужного мне источника данных на использовавшееся в икселевском database query и жал кнопку refresh data
voila tout!

по хорошему можно было б и на vba формочку написать,
которая б меняла источник данных на выбранный из списка,
но было лениво
Вообщем то я так и делаю :oops:
Просто подумал - может кто кто элегантнее придумал...
pek
Пользователь
Сообщения: 54
Зарегистрирован: 09 дек 2008, 15:38

Re: Как подменить ODBC DSN в Excel файле?

Сообщение pek »

Скинь Excel query, может чего нибудь придумаем получше.
Ответить