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:
|
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.