2016-12-05 3 views
0

Я пытаюсь создать запрос MS для возврата данных из базы данных SQL на основе значения из ячейки в Excel. Я на самом деле успешно это сделал, но только для 1 строки. Я не могу понять, как заставить его копировать в другие строки.Запросить базу данных SQL из Excel

Я создал соединение следующим образом: enter image description here

Обратите внимание, что SQL оператор включает в себя параметр. Параметр настроен так, чтобы указывать на конкретную ячейку: enter image description here

Я предполагаю, что это имеет смысл, поскольку я только хочу вернуть 1 значение за строку: проблема в том, что у меня есть несколько строк для возврата значений. Как вернуть значение для строки для нескольких строк?

Я попытался изменить ссылку на ячейку в диалоговом окне «Параметры», но это не работает, поскольку таблица Excel предназначена для динамического роста.

+0

Я не думаю, что вы можете сделать это в Excel без VBA. Использование VBA довольно тривиально. Создайте соединение с сервером с помощью ADODB. Прокрутите свой диапазон с параметрами. Каждый из них создает конкретный запрос; выполнить запрос; копирует результаты записи в ячейку. Вы можете найти множество обучающих программ ADODB в Интернете. Если у вас есть конкретная проблема с вашим кодовым сообщением, здесь, и мы с радостью поможем. С уважением. – nbayly

ответ

0

Соединения данных Excel работают таким образом, что каждое соединение имеет только один SQL-запрос. Поэтому, чтобы делать то, что вы ищете, вам нужно будет иметь множество связей, и это не «лучшая практика». Однако вы можете решить эту проблему двумя способами:
1. Сделайте одно соединение со всеми данными и создайте сводную таблицу на основе этого. Затем используйте VLOOKUP/INDEX для сбора данных в запрошенные ячейки.
2. Если данные слишком велики, вы можете использовать код VBA для создания меньшего запроса на основе упомянутых ячеек, а затем продолжить, как описано в первом варианте.

Удачи.

Смежные вопросы