SQL.REQUEST функция

Забележка: Бихме искали да ви осигурим най-новото помощно съдържание възможно най-бързо на вашия собствен език. Тази страница е преведена чрез автоматизация и може да съдържа граматически грешки и несъответствия. Нашата цел е това съдържание да ви бъде полезно. Можете ли да ни кажете дали информацията е била полезна за вас, в дъното на тази страница? Ето статията на английски за бърза справка.

Забележка: Тази статия свърши работата си и ще бъде оттеглена скоро. За да предотвратим проблеми от типа "Страницата не е намерена", премахваме връзките, за които знаем. Ако сте създали връзки към тази страница, премахнете ги, и така заедно ще запазим целостта на връзките в уеб.

В тази статия е описан синтаксисът и употребата на функцията SQL.REQUEST в Excel.

Важно: 

  • Започвайки с Excel 2010, средата за "Получаване и трансформиране" (Power Query) предоставя разширена функционалност за импортиране на данни от външни източници на данни и ефективно замества функцията SQL.REQUEST.

  • Функцията SQL.REQUEST не се поддържа след Microsoft Excel 2007.

  • Част от съдържанието в тази тема може да не е приложимо за някои езици.

Описание

Функцията SQL.REQUEST се свързва с външен източник на данни и изпълнява заявка от работен лист. Тя връща резултата като масив без нужда от програмиране на макрос. Ако тази функция не е налична, трябва да инсталирате ODBC добавката (XLODBC.XLA) на Microsoft Excel.

Синтаксис

SQL. REQUEST(връзка_низ;[изход_препр];[драйвер_подкана];[заявка_текст];[колона_имена_логически])

Синтаксисът на функцията SQL.REQUEST има следните аргументи:

  • "връзка_низ"     Задължително. Доставя информация, например име на източника на данни, ИД на потребителя и пароли, изисквани от използвания драйвер за връзка към източник на данни, и трябва да отговаря на формата на драйвера. Следващата таблица съдържа три примера на низове за свързване за три драйвера.

Драйвер

Връзка_низ

dBASE

DSN=NWind;PWD=test

SQL Server

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

ORACLE

DNS=My Oracle Data Source;DBQ=MYSER VER;UID=JohnS;PWD=Sesame

  • Трябва да дефинирате името на източника на данни (DSN), използвано в връзка_низ, преди да се опитате да се свържете към него.

  • Можете да въведете връзка_низ като масив или низ. Ако връзка_низ надвишава 250 знака, трябва да го въведете като масив.

  • Ако SQL.REQUEST не може да получи достъп до източника на данни с помощта на връзка_низ, се връща стойността за грешка #N/A.

  • "изход_препр"     Незадължително. Препратка към клетка, в която искате да се постави готовия низ за връзка. Ако въведете SQL.REQUEST в работен лист, изход_препр се игнорира.

    • Използвайте изход_препр, когато искате SQL.REQUEST да върне готовия низ за връзка (в този случай трябва да въведете SQL.REQUEST в лист за макрос).

    • Ако изпуснете изход_препр, SQL.REQUEST не връща готов низ за връзка.

  • "драйвер_подкана"     Незадължително. Задава кога да се покаже диалоговият прозорец на драйвера и кои опции са налични. Използвайте едно от числата, описани в следващата таблица. Ако драйвер_подкана е пропуснато, SQL.REQUEST използва 2 по подразбиране.

Драйвер_подкана

Описание

1

Диалоговият прозорец на драйвера се показва винаги.

2

Диалоговият прозорец на драйвера се показва само ако информацията, предоставена от низа за връзка и спецификацията на източника на данни не е достатъчна за извършване на свързването. Всички опции на диалоговия прозорец са достъпни.

3

Диалоговият прозорец на драйвера се показва само ако информацията, предоставена от низа за връзка и спецификацията на източника на данни не е достатъчна за извършване на свързването. Опциите на диалоговия прозорец, които не са необходими, се появяват избледнели и са недостъпни.

4

Диалоговият прозорец на драйвера не се показва. Ако свързването не е успешно, се връща грешка.

  • "заявка_текст"     Незадължително. SQL команда, която искате да изпълните за източника на данни.

    • Ако SQL.REQUEST не може да изпълни заявка_текст за зададения източник на данни, се връща стойността за грешка #N/A.

    • Можете да актуализирате заявка, като извършите конкатенация на препратки в заявка_текст. В следващия пример при всяка промяна на $A$3 SQL.REQUEST използва новата стойност, за да актуализира заявката.

"SELECT Име FROM Клиенти WHERE Баланс > "&$A$3&"".

Microsoft Excel ограничава низовете до дължина от 255 знака. Ако заявка_текст надвишава тази дължина, въведете заявката във вертикален диапазон от клетки и използвайте целия диапазон като заявка_текст. Стойностите на клетките се конкатенират и формират готовата SQL инструкция.

  • "колона_имена_логически"     Незадължително. Показва дали да се върнат имената на колоните като първия ред от резултатите. Задайте TRUE за този аргумент, ако искате имената на колоните да се върнат като първи ред на резултатите. В противен случай задайте FALSE. Ако колона_имена_логически е пропуснато, SQL.REQUEST не връща имена на колони.

Върната стойност

  • Ако тази функция завърши всичките се действия, тя връща масив от резултати от заявката или броя на редовете, променени от заявката.

  • Ако SQL.REQUEST е не може да получи достъп до източника на данни с помощта на връзка_низ, връща стойността за грешка #N/A.

Забележки

  • SQL.REQUEST може да се въведе като масив. Когато въведете SQL.REQUEST като масив, се връща масив, съответстващ на този диапазон.

  • Ако диапазонът от клетки е по-голям от резултата, SQL.REQUEST добавя празни клетки към върнатия масив, за да го разшири до нужния размер.

  • Ако резултатът е по-голям от диапазона, въведен като масив, SQL.REQUEST връща целия масив.

  • Аргументите на SQL.REQUEST са подредени по друг начин от аргументите на функцията SQLRequest във Visual Basic for Applications.

Пример

Да предположим, че искате да направите заявка за база данни на dBASE с име DBASE4. Когато въведете следващата формула в някоя клетка, се връща масив с резултати от заявката, в който първият ред съдържа имената на колоните:

SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4"; c15; 2; "Select ИД_клиент; Срок от поръчки WHERE кол_поръчка>100"; TRUE)

Разширете уменията си в Office
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×