SQL.REQUEST (функция SQL.REQUEST)

В этой статье описаны синтаксис формулы и использование функции SQL.REQUEST в Microsoft Excel.

Важно : 

  • Начиная с Excel 2010 функцию SQL.REQUEST заменяют функции "Получить и преобразовать" (Power Query), которые обеспечивают расширенные возможности импорта данных из внешних источников.

  • Функция SQL.REQUEST не поддерживается в более поздних версиях, чем Microsoft Excel 2007.

  • Часть содержимого этого раздела может быть неприменима к некоторым языкам.

Описание

Функция SQL.REQUEST связывается с внешним источником данных и выполняет запрос из листа. Затем она возвращает результат в виде массива; дополнительное программирование макросов при этом не требуется. Если данная функция недоступна, установите надстройку Microsoft Excel ODBC (XLODBC.XLA).

Синтаксис

SQL.REQUEST(строка_связи;[ссылка_на_код_возврата];[показ_драйвера];[текст_запроса];[нужны_имена_столбцов])

Аргументы функции SQL.REQUEST описаны ниже.

  • Строка_связи     Обязательный. Этот аргумент содержит необходимые для подключения сведения, например имя источника данных, ИД пользователя и пароли. Эта информация нужна используемому драйверу для подключения к источнику данных и должна иметь предусмотренный драйвером формат. В таблице приведены три примера строк подключения для трех драйверов.

Драйвер

Строка_связи

dBASE

DSN=NWind;PWD=test

SQL Server

DSN=MyServer;UID=dbayer;PWD=123;Database=Pubs

ORACLE

DNS=MyOracleDataSource;DBQ=MYSERVER;UID=JohnS;PWD=Sesame

  • Имя источника данных (DSN), указанное в аргументе строка_связи, должно быть определено до того, как будет предпринята попытка установить связь.

  • Аргумент строка_связи можно ввести как массив или как строку. Если строка_связи превышает 250 знаков, ее необходимо ввести как массив.

  • Если функция SQL.REQUEST не может получить доступ к данным, используя аргумент строка_связи, то возвращается значение ошибки #Н/Д.

  • Ссылка_на_код_возврата     Необязательный. Ссылка на ячейку, в которую нужно поместить готовую строку подключения. Если функция SQL.REQUEST вводится на листе, аргумент "ссылка_на_код_возврата" игнорируется.

    • Аргумент ссылка_на_код_возврата используется в тех случаях, когда функция SQL.REQUEST должна возвратить выполненную строку связи.

    • Если ссылка_на_код_возврата опущена, функция SQL.REQUEST не возвращает выполненную строку связи.

  • Показ_драйвера     Необязательный. Указывает, в каких случаях должно выводиться диалоговое окно драйвера и какие параметры доступны. Используйте одно из чисел, описанных в приведенной ниже таблице. Если аргумент "показ_драйвера" опущен, функция SQL.REQUEST использует по умолчанию значение 2.

Показ_драйвера

Описание

1

Диалоговое окно драйвера выводится всегда

2

Диалоговое окно драйвера выводится только в том случае, если информации в аргументе строка_связи недостаточно для установления связи. Доступны все параметры диалогового окна

3

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

4

Диалоговое окно драйвера не выводится. Если установить связь не удалось, то возвращается ошибка

  • Текст_запроса     Необязательный. Инструкция SQL, которую требуется выполнить в источнике данных.

    • Если функция SQL.REQUEST не может выполнить текст_запроса над указанным источником данных, то возвращается значение ошибки #Н/Д.

    • Запрос можно обновлять, сцепляя несколько ссылок в аргументе текст_запроса. В следующем примере функция SQL.REQUEST при каждом изменении ячейки $A$3 использует новое значение для обновления запроса.

"SELECT Name FROM Customers WHERE Balance > "&$A$3&"".

В Microsoft Excel допустимой является длина строки до 255 знаков. Если текст_запроса превышает эту длину, следует ввести запрос в вертикальный интервал ячеек и использовать весь интервал как текст_запроса. Значения ячеек сцепляются, образуя законченную инструкцию SQL.

  • Нужны_имена_столбцов     Необязательный. Указывает, должны ли имена столбцов возвращаться в виде первой строки результата. Задайте для этого аргумента значение ИСТИНА, если требуется, чтобы имена столбцов возвращались в первой строке результата, или значение ЛОЖЬ, если они не нужны. Если аргумент "нужны_имена_столбцов" опущен, функция SQL.REQUEST не возвращает имена столбцов.

Возвращаемое значение

  • В случае успешного завершения всех действий функция возвращает массив результатов запроса или число строк, на которые подействовал запрос.

  • Если функция SQL.REQUEST не может получить доступ к данным, используя аргумент строка_связи, то возвращается значение ошибки #Н/Д.

Замечания

  • Функция SQL.REQUEST может быть введена как массив. Если ввести функцию SQL.REQUEST как массив, будет возвращен массив, который соответствует данному интервалу.

  • Если интервал ячеек больше, чем результирующее множество, функция SQL.REQUEST добавляет пустые ячейки к возвращаемому массиву, увеличивая его до нужного размера.

  • Если результирующее множество больше, чем интервал, введенный как массив, функция SQL.REQUEST возвращает весь полученный массив.

  • Порядок аргументов функции SQL.REQUEST отличается от порядка аргументов функции SQLRequest в Visual Basic для приложений.

Пример

Предположим, что требуется сделать запрос к базе данных пакета dBASE, которая называется DBASE4. Если ввести следующую формулу в ячейку, то будет возвращен массив результатов запроса, причем в первой строке будут указаны имена столбцов.

SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2, "Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×