Freigeben über


QueryTables.Add-Methode (Excel)

Erstellt eine neue Abfragetabelle.

Syntax

Ausdruck. Hinzufügen (Verbindung, Ziel, Sql)

Ausdruck Eine Variable, die ein QueryTables-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Connection Erforderlich Variant Die Datenquelle für die Abfragetabelle. Kann eine der folgenden Möglichkeiten sein:
  • Eine Zeichenfolge, die eine OLE DB- oder ODBC-Verbindungszeichenfolge enthält. Die ODBC-Verbindungszeichenfolge hat das Format ODBC;<connection string>.
  • Ein QueryTable-Objekt, auf dem die Abfrageinformationen initial kopiert wurden, dazu zählen die Verbindungszeichenfolge und der SQL-Text, aber nicht der Bereich Destination. Das Angeben eines QueryTable-Objekts führt dazu, dass das Argument Sql ignoriert wird.
  • Ein Recordset-Objekt für ADO oder DAO. Daten werden aus dem ADO- oder DAO-Recordset gelesen. Microsoft Excel behält das Recordset bei, bis die Abfragetabelle gelöscht oder die Verbindung geändert wird. Die daraus hervorgehende Abfragetabelle kann nicht bearbeitet werden.
  • Eine Webabfrage. Eine Zeichenfolge in der Form URL;<url> , in der URL; erforderlich, aber nicht lokalisiert ist und der Rest der Zeichenfolge für die URL der Webabfrage verwendet wird.
  • Datensuche. Eine Zeichenfolge in der Form FINDER;<data finder file path> , in der FINDER; erforderlich, aber nicht lokalisiert ist. Der Rest der Zeichenfolge ist der Pfad und Dateiname einer Datensuche-Datei (*.dqy oder *.iqy). Die Datei wird gelesen, wenn die Add-Methode ausgeführt wird. Nachfolgende Aufrufe der Connection-Eigenschaft der Abfragetabelle geben Zeichenfolgen zurück, die mit ODBC; oder URL; beginnen.
  • Eine Textdatei. Eine Zeichenfolge in der Form TEXT;<text file path and name> , in der TEXT; erforderlich, aber nicht lokalisiert ist.
Ziel Erforderlich Range Die Zelle in der oberen linken Ecke des Abfragetabelle-Zielbereichs (der Bereich, in dem die resultierende Abfragetabelle platziert wird). Der Zielbereich muss sich im Arbeitsblatt befinden, das das durch einen Ausdruck angegebene Objekt QueryTables enthält.
SQL Optional Variant Die SQL-Abfragezeichenfolge, die für die ODBC-Datenquelle ausgeführt werden soll. Dieses Argument ist optional, wenn Sie eine ODBC-Datenquelle verwenden (wenn Sie es hier nicht angeben, sollten Sie es mithilfe der Sql-Eigenschaft der Abfragetabelle festlegen, bevor die Tabelle aktualisiert wird). Sie können dieses Argument nicht verwenden, wenn ein QueryTable-Objekt, eine Textdatei oder ein Recordset-Objekt für ADO oder DAO als Datenquelle angegeben wird.

Rückgabewert

Ein QueryTable-Objekt , das die neue Abfragetabelle darstellt.

Hinweise

Eine von dieser Methode erstellte Abfrage wird erst ausgeführt, wenn die Refresh-Methode aufgerufen wird.

Beispiel

In diesem Beispiel wird eine Abfragetabelle anhand eines ADO-Recordsets erstellt. Im Beispiel werden die vorhandene Spaltensortierung, die Filtereinstellungen und die Layoutinformationen zwecks Abwärtskompatibilität beibehalten.

Dim cnnConnect As ADODB.Connection 
Dim rstRecordset As ADODB.Recordset 
 
Set cnnConnect = New ADODB.Connection 
cnnConnect.Open "Provider=SQLOLEDB;" & _ 
    "Data Source=srvdata;" & _ 
    "User ID=testac;Password=4me2no;" 
 
Set rstRecordset = New ADODB.Recordset 
rstRecordset.Open _ 
    Source:="Select Name, Quantity, Price From Products", _ 
    ActiveConnection:=cnnConnect, _ 
    CursorType:=adOpenDynamic, _ 
    LockType:=adLockReadOnly, _ 
    Options:=adCmdText 
 
With ActiveSheet.QueryTables.Add( _ 
        Connection:=rstRecordset, _ 
        Destination:=Range("A1")) 
    .Name = "Contact List" 
    .FieldNames = True 
    .RowNumbers = False 
    .FillAdjacentFormulas = False 
    .PreserveFormatting = True 
    .RefreshOnFileOpen = False 
    .BackgroundQuery = True 
    .RefreshStyle = xlInsertDeleteCells 
    .SavePassword = True 
    .SaveData = True 
    .AdjustColumnWidth = True 
    .RefreshPeriod = 0 
    .PreserveColumnInfo = True 
    .Refresh BackgroundQuery:=False 
End With

In diesem Beispiel wird eine Textdatei mit fester Breite in eine neue Abfragetabelle importiert. Die erste Spalte in der Textdatei ist fünf Zeichen breit und wird als Text importiert. Die zweite Spalte ist vier Zeichen breit und wird übersprungen. Der Rest der Textdatei wird in die dritte Spalte mit angewendeter „General“-Formatierung importiert.

Set shFirstQtr = Workbooks(1).Worksheets(1) 
Set qtQtrResults = shFirstQtr.QueryTables.Add( _ 
    Connection := "TEXT;C:\My Documents\19980331.txt", 
    Destination := shFirstQtr.Cells(1,1)) 
With qtQtrResults 
    .TextFileParsingType = xlFixedWidth 
    .TextFileFixedColumnWidths := Array(5,4) 
    .TextFileColumnDataTypes := _ 
        Array(xlTextFormat, xlSkipColumn, xlGeneralFormat) 
    .Refresh 
End With

In diesem Beispiel wird eine neue Abfragetabelle im aktiven Arbeitsblatt erstellt.

sqlstring = "select 96Sales.totals from 96Sales where profit < 5" 
connstring = _ 
    "ODBC;DSN=96SalesData;UID=Rep21;PWD=NUyHwYQI;Database=96Sales" 
With ActiveSheet.QueryTables.Add(Connection:=connstring, _ 
        Destination:=Range("B1"), Sql:=sqlstring) 
    .Refresh 
End With

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.