SQL.REQUEST (funkcia)

V tomto článku sa popisuje syntax vzorca a používanie funkcie SQL.REQUEST v Microsoft Exceli.

Dôležité : 

  • Excel 2010 uviedol prostredie Získať a transformovať (Power Query) a s ním rozšírenú funkcionalitu importu údajov z externých zdrojov údajov, ktorá efektívne nahrádza funkciu SQL.REQUEST.

  • Microsoft Excel 2007 je posledná verzia, ktorá podporuje funkciu SQL.REQUEST.

  • Časť obsahu v tejto téme sa na niektoré jazyky nemusí vzťahovať.

Popis

Funkcia SQL.REQUEST sa pripojí k externému zdroju údajov a spustí dotaz nachádzajúci sa v hárku. Potom vráti výsledok ako pole aj bez programovania makier. Ak táto funkcia nie je dostupná, treba nainštalovať doplnkový program Microsoft Excel ODBC (XLODBC.XLA).

Syntax

SQL.REQUEST(connection_string;[output_ref];[driver_prompt];[query_text];[col_names_logical])

Syntax funkcie SQL.REQUEST obsahuje nasledovné argumenty:

  • connection_string     Povinný argument. Poskytuje informácie o názve zdroja údajov, identifikáciách a heslách používateľov. Tieto informácie požaduje ovládač, ktorý sa použije na pripojenie na zdroj údajov, preto musia byť zadané vo formáte požadovanom ovládačom. V nasledujúcej tabuľke sú uvedené tri príklady hodnôt argumentu connection_string pre tri rôzne ovládače.

Ovládač

connection_string

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

  • Pred pokusom o pripojenie na zdroj údajov je nutné definovať názov zdroja údajov (DSN), ktorý sa použije v argumente connection_string.

  • Argument connection_string môžete zadať ako pole alebo ako reťazec. Ak je dĺžka hodnoty tohto argumentu väčšia ako 250 znakov, musí byť zadaná ako pole.

  • Ak sa funkcii SQL.REQUEST nepodarí získať prístup k zdroju údajov pomocou hodnoty argumentu connection_string, vráti sa chybová hodnota #NEDOSTUPNÝ.

  • output_ref     Voliteľný argument. Odkaz na bunku, do ktorej chcete umiestniť dokončený reťazec pripojenia. Ak funkciu SQL.REQUEST zadáte v hárku, tento argument sa bude ignorovať.

    • Ak chcete, aby funkcia SQL.REQUEST vrátila dokončený reťazec pripojenia, zadajte argument output_ref (v tom prípade je nutné zadať funkciu SQL.REQUEST do hárka s makrom).

    • Ak argument output_ref nezadáte, funkcia SQL.REQUEST nevráti dokončený reťazec pripojenia.

  • driver_prompt     Voliteľný argument. Určuje, kedy sa má zobraziť dialógové okno ovládača a ktoré možnosti sú dostupné. Použite jedno z čísel popísaných v nasledujúcej tabuľke. Ak argument driver_prompt nezadáte, funkcia SQL.REQUEST použije predvolenú hodnotu 2.

Hodnota argumentu driver_prompt

Popis

1

Dialógové okno ovládača sa zobrazí v každom prípade.

2

Dialógové okno ovládača sa zobrazí iba v prípade, ak informácie zadané v argumente connection_string a určení zdroja údajov nepostačujú na pripojenie. Všetky možnosti dialógového okna sú dostupné.

3

Dialógové okno ovládača sa zobrazí iba v prípade, ak informácie zadané v argumente connection_string a určení zdroja údajov nepostačujú na pripojenie. Nepotrebné možnosti dialógového okna sa zobrazia ako tlmené a nie sú dostupné.

4

Dialógové okno ovládača sa nikdy nezobrazí. Ak sa pokus o pripojenie nepodarí, vráti funkcia chybovú hodnotu.

  • query_text     Voliteľný argument. Príkaz SQL, ktorý chcete použiť na zdroj údajov.

    • Ak sa funkcii SQL.REQUEST nepodarilo požadovaný dotaz na zadanom zdroji údajov vykonať, vráti chybovú hodnotu #NEDOSTUPNÝ.

    • Dotaz môžete aktualizovať zreťazením odkazov v argumente query_text. V nasledujúcom príklade funkcia SQL.REQUEST aktualizuje dotaz podľa novej hodnoty odkazu $A$3 pri každej zmene tejto hodnoty.

"SELECT Meno FROM Zákazníci WHERE Zostatok > "&$A$3&"".

Dĺžka reťazcov je v programe Microsoft Excel obmedzená na 255 znakov. Ak je argument query_text dlhší, zadajte dotaz do zvislého rozsahu buniek a potom použite celý rozsah ako argument query_text. Príkaz SQL sa vytvorí zreťazením hodnôt v týchto bunkách.

  • column_names_logical     Voliteľný argument. Určuje, či funkcia vráti v prvom riadku výsledkov názvy stĺpcov. Ak chcete, aby sa v prvom riadku výsledkov vrátili názvy stĺpcov, zadajte hodnotu argumentu TRUE. Ak to nechcete, zadajte hodnotu argumentu FALSE. Ak argument column_names_logical nezadáte, funkcia SQL.REQUEST názvy stĺpcov nevráti.

Vrátená hodnota

  • Keď funkcia SQL.REQUEST vykoná všetky akcie, vráti pole s výsledkami dotazu alebo počet riadkov ovplyvnených dotazom.

  • Ak sa funkcia SQL.REQUEST nemôže pripojiť na zdroj údajov pomocou zadaného argumentu connection_string, vráti chybovú hodnotu #NEDOSTUPNÝ.

Poznámky

  • Funkciu SQL.REQUEST je možné zadať ako pole. Ak zadáte funkciu SQL.REQUEST ako pole, vráti sa pole rovnakého rozsahu.

  • Ak je rozsah buniek väčší ako množina výsledkov, funkcia SQL.REQUEST pridá do vráteného poľa prázdne bunky, aby ho zväčšila na požadovanú veľkosť.

  • Ak je množina výsledkov väčšia než rozsah zadaný ako pole, funkcia SQL.REQUEST vráti celé pole.

  • Argumenty funkcie SQL.REQUEST sú uvedené v inom poradí ako argumenty funkcie SQLRequest v programe Visual Basic for Applications.

Príklad

Predpokladajme, že chcete vytvoriť dotaz na databázu programu dBASE s názvom DBASE4. Ak do bunky zadáte nasledujúci vzorec, vráti sa pole výsledkov dotazu a prvý riadok bude obsahovať názvy stĺpcov:

SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2, "Select ID_Zákazníka, Termín_splatnosti from Objednávky WHERE Suma_obj>100"; TRUE)

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×