SQL.REQUEST, funkcja

Ten artykuł zawiera opis składni formuły i zastosowania funkcji SQL.REQUEST w programie Excel.

Ważne : 

  • Począwszy od wersji programu Excel 2010 środowisko dodatku Pobieranie i przekształcanie (Power Query) oferuje rozszerzone funkcje importowania danych ze źródeł zewnętrznych, w praktyce zastępując funkcję SQL.REQUEST.

  • Funkcja SQL.REQUEST nie jest obsługiwana w wersjach programu Microsoft Excel nowszych niż 2007.

  • Część treści tego tematu może nie dotyczyć niektórych języków.

Opis

Funkcja SQL.REQUEST łączy się z zewnętrznym źródłem danych i uruchamia zapytanie z arkusza. Następnie zwraca wynik w postaci tablicy bez konieczności programowania makra. Jeśli funkcja jest niedostępna, należy zainstalować dodatek ODBC dla programu Microsoft Excel (XLODBC.XLA).

Składnia

SQL.REQUEST(parametry_połączenia;[adres_wyjście];[podpowiedź_progrster];[zapytanie_tekst];[kolumna_nazwy_logiczna])

W składni funkcji SQL.REQUEST występują następujące argumenty:

  • Parametry_połączenia     Argument wymagany. Zapewnia informacje, takie jak nazwa źródła danych, identyfikator użytkownika oraz hasła żądane przez sterownik podczas łączenia się ze źródłem danych i musi być zgodny z formatem sterownika. W poniższej tabeli przedstawiono trzy przykładowe parametry połączenia dla trzech sterowników.

Sterownik

Parametry_połączenia

dBASE

DSN=NWind;PWD=test

SQL Server

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

ORACLE

DNS=nazwa_źródła_danych_Oracle;DBQ=NAZWA_SERWERA;UID=JohnS;PWD=Sesame

  • W parametrach połączenia należy zdefiniować nazwę używanego źródła danych (DSN) przed próbą połączenia się z nim.

  • Parametry połączenia można wprowadzić w postaci tablicy lub ciągu. Jeśli argument Parametry_połączenia przekracza 250 znaków, należy wprowadzać go jako tablicę.

  • Jeśli funkcja SQL.REQUEST nie może uzyskać dostępu do źródła danych za pomocą argumentu parametry_połączenia, to zwraca wartość błędu #N/D!.

  • Adres_wyjście     Argument opcjonalny. Odwołanie do komórki, w której mają zostać umieszczone parametry zakończonego połączenia. Po wprowadzeniu funkcji SQL.REQUEST w arkuszu argument adres_wyjście jest ignorowany.

    • Argumentu adres_wyjście należy używać, jeśli funkcja SQL.REQUEST ma zwracać parametry zakończonego połączenia (w tym przypadku funkcję SQL.REQUEST należy wprowadzić w arkuszu makr).

    • Pominięcie argumentu adres_wyjście powoduje, że funkcja SQL.REQUEST nie zwraca parametrów zakończonego połączenia.

  • Podpowiedź_progrster     Argument opcjonalny. Określa, kiedy wyświetlane jest okno dialogowe sterownika i które opcje są dostępne. Należy użyć jednej z liczb opisanych w poniższej tabeli. Jeśli argument podpowiedź_progrster zostanie pominięty, to funkcja SQL.REQUEST używa domyślnie wartości 2.

Podpowiedź_progrster

Opis

1

Okno dialogowe sterownika jest zawsze wyświetlone.

2

Okno dialogowe sterownika jest wyświetlane tylko wtedy, gdy informacje znajdujące się w argumencie parametry_połączenia i specyfikacja źródła danych nie są wystarczające do zakończenia połączenia. Wszystkie opcje pola dialogowe są dostępne.

3

Okno dialogowe sterownika jest wyświetlane tylko wtedy, gdy informacje znajdujące się w argumencie parametry_połączenia i specyfikacja źródła danych nie są wystarczające do zakończenia połączenia. Opcje okna dialogowego są nieaktywne i niedostępne, jeśli nie są wymagane.

4

Okno dialogowe sterownika nie jest wyświetlone. Jeśli połączenie nie zostało zakończone pomyślnie, zwracany jest błąd.

  • Zapytanie_tekst     Argument opcjonalny. Instrukcja SQL, która ma zostać wykonana względem źródła danych.

    • Jeśli funkcja SQL.REQUEST nie może wykonać instrukcji podanej w argumencie zapytanie_tekst w odniesieniu do określonego źródła danych, zwracana jest wartość błędu #N/D!.

    • Kwerendę można aktualizować, łącząc odwołania w argumencie zapytanie_tekst. W poniższym przykładzie przy każdej zmianie argumentu $A$3 funkcja SQL.REQUEST używa nowej wartości do aktualizacji kwerendy.

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

Program Microsoft Excel ogranicza długość ciągów do 255 znaków. Jeśli argument zapytanie_tekst jest dłuższy, to należy wprowadzić kwerendę w pionowym zakresie komórek i użyć całego zakresu jako argumentu zapytanie_tekst. Wartości komórek są tak łączone, by tworzyły pełną instrukcję SQL.

  • Kolumna_nazwy_logiczna     Argument opcjonalny. Określa, czy nazwy kolumn są zwracane jako pierwszy wiersz wyników. Należy ustawić dla tego argumentu wartość PRAWDA, jeśli nazwy kolumn mają pojawiać się w postaci pierwszego wiersza w wynikach. Należy użyć wartości FAŁSZ, aby nazwy kolumn nie były zwracane. Jeśli argument kolumna_nazwy_logiczna zostanie pominięty, to funkcja SQL.REQUEST nie zwraca nazw kolumn.

Zwracana wartość

  • Po zakończeniu wszystkich działań funkcja zwraca tablicę wyników kwerendy lub liczbę wierszy, których dotyczyła kwerenda.

  • Jeśli funkcja SQL.REQUEST nie może uzyskać dostępu do źródła danych za pomocą argumentu ciąg_połączeń, to zwracana jest wartość błędu #N/D!.

Spostrzeżenia

  • Funkcję SQL.REQUEST można wprowadzić jako tablicę. Funkcja SQL.REQUEST wprowadzona w postaci tablicy zwraca tablicę dopasowaną do zakresu.

  • Jeśli zakres komórek jest większy niż zestaw wyników, to funkcja SQL.REQUEST dodaje puste komórki do zwróconej tablicy, aby powiększyć ją do niezbędnego rozmiaru.

  • Jeśli zestaw wyników jest większy od zakresu wprowadzonego jako tablica, to funkcja SQL.REQUEST zwraca całą tablicę.

  • Argumenty funkcji SQL.REQUEST są podawane w innej kolejności niż argumenty funkcji SQL.REQUEST w języku Visual Basic for Applications.

Przykład

Załóżmy, że należy wykonać kwerendę dotyczącą bazy danych w formacie dBASE o nazwie DBASE4. Po wprowadzeniu poniższej formuły do komórki zwracana jest tablica zawierająca wyniki kwerendy z nazwami kolumn w pierwszym wierszu:

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

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×