SQL.REQUEST (funcția SQL.REQUEST)

Acest articol descrie sintaxa de formulă și utilizarea funcției SQL.REQUEST în Microsoft Excel.

Important : 

  • Începând cu Excel 2010, experiența de tip Obțineți și transformați (Power Query) oferă o funcționalitate îmbunătățită pentru importul datelor din surse de date externe și înlocuiește eficient funcția SQL.REQUEST.

  • Funcția SQL.REQUEST nu este acceptată dincolo de Microsoft Excel 2007.

  • Este posibil ca o parte a conținutului din acest subiect să nu fie aplicabilă în unele limbi.

Descriere

Funcția SQL.REQUEST se conectează la o sursă de date externă și rulează o interogare dintr-o foaie de lucru. Aceasta returnează apoi rezultatul ca matrice, fără a fi nevoie de programarea unor macrocomenzi. Dacă această funcție este indisponibilă, trebuie să instalați programul de completare Microsoft Excel ODBC (XLODBC.XLA).

Sintaxă

SQL. REQUEST(șir_conexiune,[ref_ieșire],[prompt_driver],[text_interogare],[nume_col_logic])

Sintaxa funcției SQL.REQUEST are următoarele argumente:

  • șir_conexiune     Obligatoriu. Furnizează informații, cum ar fi numele sursei de date, identitatea utilizatorului și parole, cerute de driverul utilizat pentru conectarea la sursa de date, acest argument al funcției trebuind să respecte formatul driverului. Tabelul următor vă oferă trei exemple de șiruri de conexiune pentru trei drivere.

Driver

șir_conexiune

dBASE

DSN=NWind;PWD=test

SQL Server

DSN=Serverul Meu;UID=dbayer; PWD=123;Databaza=Pubs

ORACLE

DNS=Sursa de date Oracle;DBQ=MYSER VER;UID=IonS;PWD=Sesam

  • Trebuie să definiți numele sursei de date (DSN) utilizat în șir_conexiune înainte de a vă conecta la ea.

  • Puteți introduce șir_conexiune ca matrice sau ca șir. Dacă șir_conexiune depășește 250 caractere, trebuie să-l introduceți ca pe o matrice.

  • Dacă SQL.REQUEST nu este capabilă să primească accesul la sursa de date cu ajutorul șir_conexiune, atunci funcția întoarce valoarea de eroare #N/A.

  • ref_ieșire    Opțional. Este o referință de celulă în care doriți să fie plasat șirul de conexiune realizată. Dacă introduceți SQL.REQUEST într-o foaie de calcul, atunci ref_ieșire este ignorat.

    • Utilizați ref_ieșire când vreți ca SQL.REQUEST să întoarcă șirul de conexiune realizată (în acest caz, trebuie să introduceți funcția SQL.REQUEST într-o foaie de macrocomandă).

    • Dacă omiteți ref_ieșire, SQL.REQUEST nu întoarce șirul de conexiune realizată.

  • prompt_driver     Opțional. Specifică în ce caz să fie afișată caseta de dialog a driverului și ce opțiuni sunt disponibile. Utilizați unul din numerele descrise în tabelul următor. Dacă prompt_driver este omis, SQL.REQUEST folosește în mod implicit numărul 2.

prompt_driver

Descriere

1

Caseta de dialog a driverului este totdeauna afișată.

2

Caseta de dialog a driverului este afișată numai dacă informațiile din șirul de conexiune și specificarea sursei de date nu sunt suficiente pentru a realiza conexiunea. Toate opțiunile casetei de dialog sunt disponibile.

3

Caseta de dialog a driverului este afișată numai dacă informațiile din șirul de conexiune și specificarea sursei de date nu sunt suficiente pentru a realiza conexiunea. Opțiunile casetei de dialog apar estompat și sunt inaccesibile dacă nu sunt cerute.

4

Caseta de dialog a driverului nu este afișată. Dacă conexiunea nu a fost realizată cu succes, va fi returnată o eroare.

  • Text_interogare     Opțional. Este instrucțiunea SQL care doriți să fie executată asupra sursei de date.

    • Dacă funcția SQL.REQUEST nu este capabilă să ruleze text_interogare asupra sursei de date specificate, atunci va întoarce valoarea de eroare #N/A.

    • Puteți actualiza o interogare prin concatenarea referințelor într-un argument text_interogare. În următorul exemplu, de fiecare dată când se schimbă conținutul celulei $A$3, SQL.REQUEST folosește noua valoare pentru a actualiza interogarea.

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

Microsoft Excel limitează șirurile la o lungime de 255 caractere. Dacă argumentul text_interogare depășește această lungime, introduceți interogarea într-o zonă verticală de celule și utilizați întreaga zonă ca argument text_interogare. Valorile din celule sunt concatenate pentru a forma instrucțiunea SQL completă.

  • nume_col_logic     Opțional. Indică dacă numele de coloane sunt returnate drept primul rând de rezultate. Stabiliți-i acestui argument valoarea TRUE dacă vreți ca numele de coloane să fie returnate drept primul rând de rezultate. Utilizați FALSE dacă nu vreți să fie returnate numele coloanelor. Dacă nume_col_logic este omis, SQL.REQUEST nu întoarce numele coloanelor.

Valoare întoarsă

  • Dacă această funcție rezolvă toate acțiunile cerute, ea returnează o matrice cu rezultatele interogării sau numărul de rânduri consultate la interogare.

  • Dacă funcția SQL.REQUEST nu este capabilă să acceseze sursa de date cu ajutorul șir_conexiune, ea întoarce valoarea de eroare #N/A.

Observații

  • SQL.REQUEST poate fi introdusă ca o matrice. Când introduceți SQL.REQUEST ca o matrice, ea întoarce tot o matrice, corespunzătoare ca mărime acelei zone de celule.

  • Dacă zona de celule este mai mare decât setul de rezultate, SQL.REQUEST adaugă celule goale matricei returnate pentru a o aduce la mărimea necesară.

  • Dacă setul de rezultate este mai mare decât zona introdusă ca matrice, SQL.REQUEST returnează întreaga matrice.

  • Argumentele funcției SQL.REQUEST sunt într-o ordine diferită de ale funcției SQLRequest din Visual Basic for Applications.

Exemplu

Să presupunem că doriți să faceți o interogare pe o bază de date dBASE numită DBASE4. Când introduceți formula următoare într-o celulă, este returnată o matrice cu rezultatele interogării, având în prima linie nume de coloane:

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

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×