Klasse QueryTable (Excel VBA)

Die Klasse QueryTable stellt eine Arbeitsblatt Tabelle dar, die aus Daten erstellt wurde, die von einer externen Datenquelle wie SQL Server oder einer Microsoft Access-Datenbank zurückgegeben werden.

Die wichtigste Prozeduren der Klasse QueryTable sind Delete und QueryTables.Add

Set

Um eine QueryTable -Klassenvariable zu verwenden, muss sie zuerst instanziert werden, beispielsweise

Dim qrytbl as QueryTable
Set qrytbl = ActiveCell.QueryTable

Die folgenden Prozeduren können zum Festlegen der QueryTable Klassenvariablen verwendet werden : ListObject.QueryTable, QueryTables.Item, QueryTables.Add, Range.QueryTable und Worksheet.QueryTables

For Each

Hier ist ein Beispiel für die Verarbeitung der QueryTable -Elemente in einer Sammlung

Dim qrytbl As QueryTable
For Each qrytbl In Application.QueryTables
	
Next qrytbl

Themas

Einige Prozeduren in dieser Klasse wurden in Themen zusammengefasst und auf separaten Themenseiten beschrieben

Enable with its procedures EnableEditing und EnableRefresh
Row with its procedures FetchedRowOverflow, RowNumbers und TextFileStartRow
Column with its procedures PreserveColumnInfo und TextFileColumnDataTypes
Web with its procedures WebConsecutiveDelimitersAsOne, WebDisableDateRecognition, WebDisableRedirections, WebFormatting, WebPreFormattedTextToColumns, WebSelectionType und WebTables

Methoden

Die Hauptmethoden der Klasse QueryTable sind

Delete - Löscht das Objekt.

ActiveCell.QueryTable.Delete

QueryTables.Add - Erstellt eine neue Abfragetabelle.

Dim strConnection As String: strConnection = 
Dim qrytbl As QueryTable
Set qrytbl = ActiveSheet.QueryTables.Add(Connection:=strConnection, Destination:=)

Andere Methoden

CancelRefresh - Bricht alle Hintergrundabfragen der angegebenen Abfragetabelle ab.

Refresh - Aktualisiert einen externen Datenbereichen in einem Queryable -Objekt.

ResetTimer - Setzt den Aktualisierungszeitgeber für die angegebene Abfragetabelle oder den angegebenen PivotTable-Bericht auf das letzte Intervall zurück, das Sie mithilfe der RefreshPeriod -Eigenschaft festgelegt haben.

SaveAsODC - Speichert die Abfrage Bare Cache Quelle als Microsoft Office-Datenverbindungsdatei.

QueryTables.Item - Gibt ein einzelnes Objekt aus einer Auflistung zurück.

Eigenschaften

AdjustColumnWidth True, wenn die Spaltenbreiten beim Aktualisieren der angegebenen Abfragetabelle immer automatisch optimal angepasst werden.

ActiveCell.QueryTable.AdjustColumnWidth = True

BackgroundQuery True, wenn Abfragen der Abfragetabelle asynchron (im Hintergrund) ausgeführt werden.

ActiveCell.QueryTable.BackgroundQuery = True

CommandText Gibt die Befehlszeichenfolge für die angegebene Datenquelle zurück oder legt diese fest.

ActiveCell.QueryTable.CommandText =

CommandType Zurückgeben oder Festlegen einer der folgenden XlCmdType -Konstanten: xlCmdCube, xlCmdDefault, xlCmdSqloder xlCmdTable.

ActiveCell.QueryTable.CommandType = xlCmdCube

Connection Zurückgeben oder Festlegen einer Zeichenfolge, die eine der folgenden enthält:.

ActiveCell.QueryTable.Connection =

Destination Die Zelle in der oberen linken Ecke des Zielbereichs der Abfragetabelle (der Bereich, in dem die sich ergebende Abfragetabelle positioniert wird).

Dim rngDestination As Range
Set rngDestination = ActiveCell.QueryTable.Destination

EditWebPage Gibt den URL (Uniform Resource Locator) für eine Webabfrage zurück oder legt ihn fest.

ActiveCell.QueryTable.EditWebPage = "C:\MyHomepage.htm"

FieldNames True , wenn Feldnamen aus der Datenquelle als Spaltenüberschriften für die zurückgegebenen Daten angezeigt werden.

ActiveCell.QueryTable.FieldNames = True

FillAdjacentFormulas True, falls Formeln, die sich rechts von der angegebenen Abfragetabelle befinden, immer automatisch aktualisiert werden, wenn die Abfragetabelle aktualisiert wird.

ActiveCell.QueryTable.FillAdjacentFormulas = True

ListObject Gibt ein ListObject -Objekt für das Queryable-Objekt zurück.

Dim lstobjListObject As ListObject
Set lstobjListObject = ActiveCell.QueryTable.ListObject

MaintainConnection True, wenn die Verbindung zu der angegebenen Datenquelle nach der Aktualisierung bis zum Schließen der Arbeitsmappe aufrechterhalten bleibt.

ActiveCell.QueryTable.MaintainConnection = True

Name Gibt einen String-Wert zurück, der den Namen des Objekt darstellt, oder legt diesen Wert fest.

ActiveCell.QueryTable.Name =

Parameters Gibt eine Parameters -Auflistung zurück, die die Parameter der Abfragetabelle darstellt.

Dim prmsParameters As Parameters
Set prmsParameters = ActiveCell.QueryTable.Parameters

Parent Gibt das übergeordnete Objekt für das angegebene Objekt zurück.

Dim objParent As Object
Set objParent = ActiveCell.QueryTable.Parent

PostText Gibt die Zeichenfolge zurück, die mit der Post-Methode verwendet wird, um Daten in einen Webserver einzufügen, um Daten aus einer Webabfrage zurückzugeben, oder legt diese fest.

ActiveCell.QueryTable.PostText =

PreserveFormatting True wenn eine beliebige, den ersten fünf Datenzeilen gemeinsame Formatierung auf neue Datenzeilen in der Abfragetabelle angewendet wird.

ActiveCell.QueryTable.PreserveFormatting = True

QueryType Gibt den Typ der von Microsoft Excel zum Auffüllen der Abfragetabelle verwendeten Abfrage an.

Dim xqtQueryType As XlQueryType
xqtQueryType = ActiveCell.QueryTable.QueryType

Recordset

ActiveCell.QueryTable.Recordset =

Refreshing True, wenn für die angegebene Abfragetabelle gerade eine Hintergrundabfrage ausgeführt wird.

Dim booRefreshing As Boolean
booRefreshing = ActiveCell.QueryTable.Refreshing

RefreshOnFileOpen True , wenn der PivotTable-Cache oder die Abfragetabelle bei jedem Öffnen der Arbeitsmappe automatisch aktualisiert wird.

ActiveCell.QueryTable.RefreshOnFileOpen = True

RefreshPeriod Gibt die Anzahl der Minuten zwischen Aktualisierungen zurück oder legt sie fest.

ActiveCell.QueryTable.RefreshPeriod =

RefreshStyle Gibt zurück oder legt fest, wie Zeilen im angegebenen Arbeitsblatt hinzugefügt oder gelöscht werden, damit die Anzahl der Zeilen eines Recordsets, das von einer Abfrage zurückgegeben wird, eingefügt werden kann.

ActiveCell.QueryTable.RefreshStyle = xlInsertDeleteCells

ResultRange Gibt ein Range -Objekt zurück, das den Bereich des Arbeitsblatts darstellt, das von der angegebenen Abfragetabelle belegt wird.

Dim rngResultRange As Range
Set rngResultRange = ActiveCell.QueryTable.ResultRange

RobustConnect Gibt zurück oder legt fest, wie die Abfragetabelle eine Verbindung mit der Datenquelle herstellt.

ActiveCell.QueryTable.RobustConnect = xlAlways

SaveData True, wenn Daten für die Abfragetabelle zusammen mit der Arbeitsmappe gespeichert werden.

ActiveCell.QueryTable.SaveData = True

SavePassword True , wenn Kennwortinformationen in einer ODBC-Verbindungszeichenfolge mit der angegebenen Abfrage gespeichert werden.

ActiveCell.QueryTable.SavePassword = True

Sort Gibt die Sortierkriterien für den Abfragetabellenbereich zurück.

Dim srtSort As Sort
Set srtSort = ActiveCell.QueryTable.Sort

SourceConnectionFile Gibt einen String-Wert zurück, der die Microsoft Office-Datenverbindungsdatei oder eine vergleichbare Datei anzeigt, die zum Erstellen der QueryTable verwendet wurde, oder legt diesen Wert fest.

ActiveCell.QueryTable.SourceConnectionFile =

SourceDataFile Gibt einen String-Wert zurück, der die Quelldatendatei für eine Abfragetabelle angibt, oder legt diesen fest.

ActiveCell.QueryTable.SourceDataFile =

TextFileCommaDelimiter True, wenn beim Importieren einer Textdatei in eine Abfragetabelle als Trennzeichen Kommas verwendet werden.

ActiveCell.QueryTable.TextFileCommaDelimiter = True

TextFileConsecutiveDelimiter True, wenn aufeinander folgende Trennzeichen beim Importieren einer Textdatei in eine Abfragetabelle als einzelnes Trennzeichen behandelt werden.

ActiveCell.QueryTable.TextFileConsecutiveDelimiter = True

TextFileDecimalSeparator Gibt das Dezimaltrennzeichen, das von Microsoft Excel beim Importieren einer Textdatei in eine Abfragetabelle verwendet wird, zurück oder legt dieses fest.

ActiveCell.QueryTable.TextFileDecimalSeparator = ","

TextFileFixedColumnWidths Gibt ein Array von ganzen Zahlen zurück, die den breiten der Spalten (in Zeichen) in der Textdatei entsprechen, die Sie in eine Abfragetabelle importieren, oder legt dieses fest.

ActiveCell.QueryTable.TextFileFixedColumnWidths = Array(5, 4)

TextFileOtherDelimiter Gibt das Zeichen, das beim Importieren einer Textdatei in eine Abfragetabelle als Trennzeichen verwendet wird, zurück oder legt dieses fest.

ActiveCell.QueryTable.TextFileOtherDelimiter =

TextFileParseType Gibt das Spaltenformat für die Daten in der Textdatei, die Sie in eine Abfragetabelle importieren, zurück oder legt dieses fest.

ActiveCell.QueryTable.TextFileParseType = xlDelimited

TextFilePlatform Gibt zurück oder legt den Ursprung der Textdatei, die Sie in die Abfragetabelle importieren.

################

TextFilePromptOnRefresh True, wenn der Name der importierten Textdatei bei jeder Aktualisierung der Abfragetabelle angegeben werden soll.

ActiveCell.QueryTable.TextFilePromptOnRefresh = True

TextFileSemicolonDelimiter True , wenn das Semikolon das Trennzeichen ist, wenn Sie eine Textdatei in eine Abfragetabelle importieren und wenn der Wert der TextFileParseType -Eigenschaft xlDelimitedist.

ActiveCell.QueryTable.TextFileSemicolonDelimiter = True

TextFileSpaceDelimiter True, wenn beim Importieren einer Textdatei in eine Abfragetabelle als Trennzeichen Leerzeichen verwendet werden.

ActiveCell.QueryTable.TextFileSpaceDelimiter = True

TextFileTabDelimiter True, wenn beim Importieren einer Textdatei in eine Abfragetabelle das Tabulatorzeichen als Trennzeichen verwendet wird.

ActiveCell.QueryTable.TextFileTabDelimiter = True

TextFileTextQualifier Gibt das Texterkennungszeichen beim Importieren einer Textdatei in eine Abfragetabelle zurück oder legt es fest.

ActiveCell.QueryTable.TextFileTextQualifier = xlTextQualifierDoubleQuote

TextFileThousandsSeparator Gibt das Tausendertrennzeichen zurück, das von Microsoft Excel beim Importieren einer Textdatei in eine Abfragetabelle verwendet wird, oder legt dieses fest.

ActiveCell.QueryTable.TextFileThousandsSeparator =  "."

TextFileTrailingMinusNumbers True , wenn Microsoft Excel als Text importierte Zahlen, die mit einem - (minus-) Symbol als negatives Symbol beginnen.

ActiveCell.QueryTable.TextFileTrailingMinusNumbers = True

TextFileVisualLayout Zurückgeben oder Festlegen einer XlTextVisualLayoutType -Aufzählung, die angibt, ob das visuelle Layout des zu importierenden Texts von links nach rechts oder von rechts nach links verläuft.

ActiveCell.QueryTable.TextFileVisualLayout = xlTextVisualLTR

WebSingleBlockTextImport True , wenn Daten aus den

 HTML-Tags auf der angegebenen Webseite auf einmal verarbeitet werden, wenn Sie die Seite in eine Abfragetabelle importieren.

ActiveCell.QueryTable.WebSingleBlockTextImport = True

WorkbookConnection Gibt das WorkbookConnection -Objekt zurück, das die Abfragetabelle verwendet.

Dim wbconWorkbookConnection As WorkbookConnection
Set wbconWorkbookConnection = ActiveCell.QueryTable.WorkbookConnection

QueryTables.Count Gibt einen Long-Wert zurück, der die Anzahl der Objekte in der Auflistung darstellt.

Dim lngCount As Long
lngCount = ActiveSheet.QueryTables.Count

QueryTables.Parent Gibt das übergeordnete Objekt für das angegebene Objekt zurück.

Dim objParent As Object
Set objParent = ActiveSheet.QueryTables.Parent