6

Я хочу сделать именно это: http://dailydoseofexcel.com/archives/2004/12/13/parameters-in-excel-external-data-queries/, но я хочу сделать это в Excel 2010, а также я запрашиваю SQL Сервер вместо MS Access. Является ли это возможным?

Чтобы точно понять, что я хочу получить по этой ссылке, нужно иметь параметры запроса, которые ссылаются на ячейки на листе. В настоящее время я использую VBA и событие запуска смены ячейки. Есть ли более простой способ?


ПРИМЕЧАНИЕ. Любой, кто использует метод в принятом ответе, если вы хотите, чтобы ваша электронная таблица работала на компьютере, на котором не установлен SQL Server, может оказаться полезным: https://dba.stackexchange.com/ а / 109221/46815

1 ответ1

9

Вот и я наконец понял это. Вот мои шаги.

  1. Откройте новый лист Excel (я использую Excel 2010)
  2. Нажмите на вкладку "Данные" на ленте.
  3. Нажмите на кнопку "Из других источников".
  4. Выберите "Из запроса Microsoft"
  5. Выберите источник данных
  6. Выберите любую таблицу, чтобы заполнить столбцы в окне запроса - это не имеет значения, поскольку мы переопределим ее позже - и нажмите кнопку Далее.
  7. Продолжайте нажимать дальше, пока не дойдете до кнопки "Готово", затем нажмите "Готово"
  8. Нажмите «Свойства ...»
  9. Перейдите на вкладку "Определение"
  10. Тип соединения должен иметь вид "Запрос к базе данных" - если он говорит, что вы можете добавить параметры, если нет, то кажется, что он не может добавлять параметры
  11. Обновите текст команды с помощью запроса, который вы хотите использовать для доступа к базе данных SQL - не пробовал с другими базами данных, но я уверен, что он будет работать на других
  12. Чтобы создать параметр, просто вставьте? в пункте, где. Например, выберите * из таблицы1, где col1 =?

Есть некоторые проблемы с добавлением параметров. Они работают только в последнем пункте, где. то есть, если вы используете подзапросы, сводки, cte и т. д., вы не можете добавлять параметры в них. Только в конце в последнем пункте, где

  1. Дважды нажмите "ОК" - появится всплывающее окно с запросом параметра

  2. Заполните что-нибудь - мы изменим это позже

  3. Щелкните в любом месте результатов и нажмите "Свойства" на вкладке "Данные" на ленте.

  4. Нажмите на маленький значок свойства руки

  5. Нажмите на вкладку "Определение"

  6. Теперь вы увидите, что кнопка «Параметры ...» активна. Щелкните по нему и измените параметр с запроса значения на Получить значение из следующей ячейки

Если кто-то найдет более быстрый и простой способ - я на уши, но это работает последовательно и с действительно большими сложными запросами. Так что для нас это правильное решение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .