Clase QueryTables (Excel VBA)
Una colección de objetos QueryTable . Para usar una variable de clase QueryTables, primero debe ser instanciado, por ejemplo
Dim qts as QueryTables
Set qts = ActiveSheet.QueryTables
For Each
A continuación, se muestra un ejemplo de cómo procesar los elementos QueryTables en una colección.
Dim qrytbl As QueryTable
For Each qrytbl In Application.QueryTables
Next qrytbl
Add
Crea una nueva tabla de consultas.
Una consulta creada por este método no se ejecuta hasta que se llama al método Refresh .
Add (Connection, Destination, Sql)
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
Arguments
Estos son los argumentos con nombre :
Connection (String) - Origen de datos de la tabla de consultas.
Destination (Range) - Celda de la esquina superior izquierda del rango de destino de la tabla de consultas (el rango en el que se colocará la tabla de consultas).
Optional arguments
Los siguientes argumentos son opcionales
Sql (QueryTable) - Cadena SQL que se debe ejecutar en el origen de datos ODBC.
Count
Devuelve un valor Long que representa el número de objetos de la colección.
Dim lngCount As Long
lngCount = ActiveSheet.QueryTables.Count
Item
Devuelve un solo objeto de una colección.
Item (Index)
Index: Número de índice o nombre del objeto.
Dim qrytbl As QueryTable
Set qrytbl = ActiveSheet.QueryTables(Index:=1)