SQL.REQUEST (Funktion)

In diesem Artikel werden die Formelsyntax und die Verwendung der Funktion SQL.REQUEST in Excel beschrieben.

Wichtig : 

  • Beginnend mit Excel 2010 bietet die Oberfläche "Abrufen und transformieren" (Power Query) erweiterte Funktionen für das Importieren von Daten aus externen Datenquellen und ersetzt effektiv die Funktion SQL.REQUEST.

  • Die Funktion SQL.REQUEST wird in Versionen nach Microsoft Excel 2007 nicht mehr unterstützt.

  • Ein Teil der Inhalte dieses Themas gilt möglicherweise nicht für alle Sprachen.

Beschreibung

Die Funktion SQL.REQUEST stellt eine Verbindung mit einer externen Datenquelle her und führt eine Abfrage aus, die sich auf einem Arbeitsblatt befindet. Sie gibt das Ergebnis dann als Matrix zurück, ohne dass ein Makro programmiert werden muss. Ist diese Funktion nicht verfügbar, müssen Sie das ODBC-Add-In für Microsoft Excel (XLODBC.XLA) installieren.

Syntax

SQL.REQUEST(Verbindung;[Ausgabe];[Treiber];[Abfrage];[Spaltennamen])

Die Syntax der Funktion SQL.REQUEST weist die folgenden Argumente auf:

  • Verbindung     Erforderlich. Stellt die Informationen bereit, die der jeweils verwendete Treiber benötigt, um eine Verbindung mit einer Datenquelle herzustellen. Diese Informationen müssen in dem vom Treiber erwarteten Format vorliegen und umfassen z. B. den Namen der Datenquelle, die Benutzer-ID sowie die Kennwörter. In der folgenden Tabelle ist für drei Treiber je eine beispielhafte Verbindungszeichenfolge angegeben.

Treiber

Verbindung

dBASE

DSN=NWind;PWD=test

SQL Server

DSN=MeinServer;UID=DGuetti;PWD=Bier;DATABASE=Kneipen

ORACLE

DSN=Meine Oracle-Datenquelle;DBQ=MEINSERVER; UID=GerdB;PWD=Sesam

  • Sie müssen den Namen einer Datenquelle, den Sie in der Verbindung hinter dem Schlüsselwort DSN (Data Source Name) angeben, definiert haben, bevor Sie eine Verbindung zu der Datenquelle herstellen können.

  • Sie können die Verbindung als Matrix oder als Zeichenfolge eingeben. Umfasst die Verbindung mehr als 250 Zeichen, muss sie als Matrix eingegeben werden.

  • Kann SQL.REQUEST mit der verwendeten Verbindung nicht auf die entsprechende Datenquelle zugreifen, liefert die Funktion den Fehlerwert #NV.

  • Ausgabe     Optional. Der Bezug auf die Zelle, in der die fertige Verbindungszeichenfolge abgelegt werden soll. Wenn Sie SQL.REQUEST in ein Arbeitsblatt eingeben, wird Ausgabe nicht beachtet.

    • Verwenden Sie Ausgabe, wenn SQL.REQUEST die fertige Verbindung zurückgeben soll. (In diesem Fall müssen Sie die SQL.REQUEST-Formel auf einem Makroblatt eingeben).

    • Wenn Sie das Argument "Ausgabe" nicht angeben, gibt SQL.REQUEST keine fertige Verbindung zurück.

  • Treiber     Optional. Gibt an, ob das Dialogfeld "Treiber angezeigt werden soll und welche Optionen verfügbar sein sollen. Geben Sie eine der Zahlen an, die in der folgenden Tabelle erläutert sind. Fehlt das Argument "Treiber", verwendet SQL.REQUEST den Wert 2 als Standardwert.

Treiber

Beschreibung

1

Das Dialogfeld "Treiber" wird immer angezeigt.

2

Das Dialogfeld "Treiber" wird nur dann angezeigt, wenn die von der Verbindung sowie der Datenquellenangabe bereitgestellten Informationen nicht ausreichen, eine Verbindung herzustellen. Alle Dialogfeldoptionen sind verfügbar.

3

Das Dialogfeld "Treiber" wird nur dann angezeigt, wenn die von der Verbindung sowie der Datenquellenangabe bereitgestellten Informationen nicht ausreichen, eine Verbindung herzustellen. Die Dialogfeldoptionen erscheinen abgeblendet und sind nicht verfügbar, wenn sie nicht benötigt werden.

4

Das Dialogfeld wird nicht angezeigt. Kann keine Verbindung hergestellt werden, wird ein Fehler gemeldet.

  • Abfrage     Optional. Die SQL-Anweisung, die Sie für die Datenquelle ausführen möchten

    • Kann SQL.REQUEST die Abfrage für die angegebene Datenquelle nicht ausführen, liefert die Funktion den Fehlerwert #NV zurück.

    • Sie können eine Abfrage aktualisieren, indem Sie die Abfrage mit Bezügen verknüpfen. In dem folgenden Beispiel aktualisiert SQL.REQUEST die Abfrage immer dann, wenn sich die Zelle $A$3 ändert.

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

Microsoft Excel beschränkt die Zeichenfolge auf eine Länge von 255 Zeichen. Für den Fall, dass eine Abfrage diese Länge überschreitet, können Sie die Abfrage in einen vertikalen Zellbereich eingeben und den gesamten Bereich als Abfrage verwenden. Die in den Zellen stehenden Werte werden aneinandergehängt (verkettet), um so die fertige SQL-Anweisung zu bilden.

  • Spaltennamen     Optional. Gibt an, ob in der ersten Zeile der Ergebnisse die jeweiligen Spaltennamen angegeben werden sollen. Belegen Sie dieses Argument mit WAHR, wenn die Spaltennamen als erste Zeile der Ergebnisse geliefert werden sollen. Verwenden Sie FALSCH, wenn die Spaltennamen nicht geliefert werden sollen. Fehlt das Argument "Spaltennamen", liefert SQL.REQUEST keine Spaltennamen.

Rückgabewert

  • Sobald die Funktion SQL.REQUEST alle Vorgänge abgeschlossen hat, liefert sie eine Matrix, in der alle Ergebnismengen stehen.

  • Kann SQL.REQUEST mit der verwendeten Verbindung nicht auf die entsprechende Datenquelle zugreifen, liefert die Funktion den Fehlerwert #NV.

Hinweise

  • SQL.REQUEST kann als Matrix eingegeben werden. Wenn Sie dies tun, liefert die Funktion eine Matrix, die diesen Bereich ausfüllt.

  • Ist dieser Zellbereich größer als die Ergebnisgruppe, fügt SQL.REQUEST leere Zellen zu der gelieferten Matrix hinzu, um diese auf die erforderliche Größe zu bringen.

  • Wenn eine Ergebnisgruppe größer ist als der Bereich, der als Matrix eingegeben wurde, liefert SQL.REQUEST die Ergebnisgruppe nur in der Größe des markierten Bereichs.

  • Die Argumente für SQL.REQUEST sind in einer anderen Reihenfolge als die Argumente für die Funktion SQLRequest in Visual Basic for Applications.

Beispiel

Angenommen Sie möchten für eine dBASE-Datenbank namens AUFTRAG.DBF eine Abfrage formulieren. Wenn Sie die folgende Formel in eine Zelle eingeben, werden die Ergebnisse der Abfrage in Form einer Matrix geliefert, wobei die erste Zeile aus den Spaltennamen besteht:

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

Ihre Fähigkeiten erweitern
Schulung erkunden
Neue Funktionen als Erster erhalten
An Office Insider teilnehmen

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×