powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Обратиться к базе из Экселя с большим запросом
6 сообщений из 6, страница 1 из 1
Обратиться к базе из Экселя с большим запросом
    #33603375
uu_vano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю к базе из Экселя запросы через ODBC. Проблем нет, когда текст запроса < (приблизительно) 3000 знаков. А если больше - не работает. Может, кому-то удалось решить проблему ?
...
Рейтинг: 0 / 0
Обратиться к базе из Экселя с большим запросом
    #33603406
5631
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К какой базе ?
...
Рейтинг: 0 / 0
Обратиться к базе из Экселя с большим запросом
    #33603442
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uu_vanoДелаю к базе из Экселя запросы через ODBC. Проблем нет, когда текст запроса < (приблизительно) 3000 знаков. А если больше - не работает. Может, кому-то удалось решить проблему ?
Делаешь в базе хранимую процедуру и обращаешься из Экселя к ней.
...
Рейтинг: 0 / 0
Обратиться к базе из Экселя с большим запросом
    #33604675
uu_vano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База - MS SQL 2000
Идея с хранимой процедурой хороша, но сделать в базе процедуру не могу - не те права доступа :-(
Ещё идеи ?
...
Рейтинг: 0 / 0
Обратиться к базе из Экселя с большим запросом
    #33604801
5631
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй MS Access.
...
Рейтинг: 0 / 0
Обратиться к базе из Экселя с большим запросом
    #33606347
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uu_vanoБаза - MS SQL 2000
Идея с хранимой процедурой хороша, но сделать в базе процедуру не могу - не те права доступа :-(
Ещё идеи ?Ящик пива админу базы? :)

Тогда прийдется в макросе заводить ADO. Создаешь коннект к базе. Режешь свой запрос на несколько более коротких (видимо со временными таблицами) и кидаешь его в базу по частям. Полученый в итоге резалт-сет уже копируешь на лист экселя. Потом commit/rollback и рвешь коннект. Получится медленнее чем родной QueryTable, но будет работать.

Другой вариант: делаешь десяток QueryTables на разных листах, вытягиваешь в них данные подзапросов а итоговый резалтсет собираешь уже вручную через циклы на VBA.

Третий вариант: пишешь на чем-нибудь низком (типа С) специальную программку, передаешь ей в командной строке параметры, она делает всю необходимую работу через ODBC, и возвращает результат в виде csv файла. Из VBA будешь звать эту программку, дожидаться ее завершения и импортировать к себе итоговый csv.

И наконец вариант с которого надо начать: усиленно подумать и сократить этот гигантский запрос до чего-нибудь более удобоваримого. После чего поставить пиво админу :)


Вообще-то странное ограничение в три тысячи знаков. ODBC не имеет ограничения на длину запроса. Во всяком случае, я сам кидал в базу скрипты более ста килобайт размером за один SQLExecDirect(). Никаких проблем не испытывал. Это либо MSQuery либо сам Excel хулиганит.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Обратиться к базе из Экселя с большим запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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