Clase QueryTable (Excel VBA)

La clase QueryTable representa una tabla de hoja de cálculo creada a partir de los datos devueltos de un origen de datos externo, como SQL Server o una base de datos de Microsoft Access.

Los principales procedimientos de la clase QueryTable son Delete y QueryTables.Add

Set

Para usar una variable de clase QueryTable, primero debe ser instanciado, por ejemplo

Dim qrytbl as QueryTable
Set qrytbl = ActiveCell.QueryTable

Los siguientes procedimientos se pueden usar para establecer variables de clase QueryTable : ListObject.QueryTable, QueryTables.Item, QueryTables.Add, Range.QueryTable y Worksheet.QueryTables

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos QueryTable en una colección.

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

Temas

Algunos procedimientos de esta clase se han agrupado en temas y se describen en páginas temáticas separadas

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

Métodos

Los principales métodos de la clase QueryTable son

Delete - Elimina el objeto.

ActiveCell.QueryTable.Delete

QueryTables.Add - Crea una nueva tabla de consultas.

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

Otros Métodos

CancelRefresh - Cancela todas las consultas en segundo plano de la tabla de consulta especificada.

Refresh - Actualiza un rango de datos externos en un objeto QueryTable .

ResetTimer - Restablece el temporizador de actualización de la tabla de consulta o informe de tabla dinámica especificados al último intervalo establecido mediante la propiedad RefreshPeriod .

SaveAsODC - Guarda el origen de caché de la QueryTable como archivo de conexión de datos de Microsoft Office.

QueryTables.Item - Devuelve un solo objeto de una colección.

Propiedades

AdjustColumnWidth True si los anchos de columna se ajustan automáticamente para lograr el mejor ajuste cada vez que se actualice la tabla de consulta especificada.

ActiveCell.QueryTable.AdjustColumnWidth = True

BackgroundQuery Es True si las consultas de la tabla de consulta se llevan a cabo de forma asíncrona (en segundo plano).

ActiveCell.QueryTable.BackgroundQuery = True

CommandText Devuelve o establece la cadena de comandos del origen de datos especificado.

ActiveCell.QueryTable.CommandText =

CommandType Devuelve o establece una de estas constantes XlCmdType : xlCmdCube, xlCmdDefault, xlCmdSqlo xlCmdTable.

ActiveCell.QueryTable.CommandType = xlCmdCube

Connection Devuelve o establece una cadena que contiene uno de los siguientes elementos:.

ActiveCell.QueryTable.Connection =

Destination Devuelve la celda situada en la esquina superior izquierda del rango de destino de la tabla de consulta (rango en el que se situará la tabla de consulta resultante).

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

EditWebPage Devuelve o establece el localizador uniforme de recursos (URL) de la Página Web de una consulta Web.

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

FieldNames True si los nombres de campo del origen de datos aparecen como encabezados de columna de los datos que se devuelven.

ActiveCell.QueryTable.FieldNames = True

FillAdjacentFormulas True si las fórmulas de la derecha de la tabla de consulta especificada se actualizan automáticamente siempre que se actualiza la tabla.

ActiveCell.QueryTable.FillAdjacentFormulas = True

ListObject Devuelve un objeto ListObject para el objeto QueryTable .

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

MaintainConnection Es True si la conexión al origen de datos especificada se mantiene después de la actualización y hasta que se cierre el libro.

ActiveCell.QueryTable.MaintainConnection = True

Name Devuelve o establece un valor de tipo String que representa el nombre del objeto.

ActiveCell.QueryTable.Name =

Parameters Devuelve una colección Parameters que representa los parámetros de la tabla de consulta.

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

Parent Devuelve el objeto primario del objeto especificado.

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

PostText Devuelve o establece la cadena utilizada con el método post de introducción de datos en un servidor web para devolver datos de una consulta Web.

ActiveCell.QueryTable.PostText =

PreserveFormatting Es True si se aplica un formato común de las cinco primeras filas de datos a filas nuevas de datos de la tabla de consulta.

ActiveCell.QueryTable.PreserveFormatting = True

QueryType Indica el tipo de consulta que Microsoft Excel usa para rellenar la tabla de consulta.

Dim xqtQueryType As XlQueryType
xqtQueryType = ActiveCell.QueryTable.QueryType

Recordset

ActiveCell.QueryTable.Recordset =

Refreshing True si está en curso una consulta en segundo plano para la tabla de consulta especificada.

Dim booRefreshing As Boolean
booRefreshing = ActiveCell.QueryTable.Refreshing

RefreshOnFileOpen True si la memoria caché de la tabla dinámica o la tabla de consulta se actualiza automáticamente cada vez que se abre el libro.

ActiveCell.QueryTable.RefreshOnFileOpen = True

RefreshPeriod Devuelve o establece el número de minutos entre actualizaciones.

ActiveCell.QueryTable.RefreshPeriod =

RefreshStyle Devuelve o establece cómo se agregan o eliminan filas de la hoja de cálculo especificada para que pueda alojar el número de filas de un conjunto de registros devuelto por una consulta.

ActiveCell.QueryTable.RefreshStyle = xlInsertDeleteCells

ResultRange Devuelve un objeto Range que representa el área de la hoja de cálculo ocupada por la tabla de consulta especificada.

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

RobustConnect Devuelve o establece el modo en que la tabla de consulta se conecta a su origen de datos.

ActiveCell.QueryTable.RobustConnect = xlAlways

SaveData Es True si los datos del informe de tabla de consulta se guardan con el libro.

ActiveCell.QueryTable.SaveData = True

SavePassword True si la información de contraseña de una cadena de conexión ODBC se guarda junto con la consulta especificada.

ActiveCell.QueryTable.SavePassword = True

Sort Devuelve el criterio de ordenación del rango de la tabla de consulta.

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

SourceConnectionFile Devuelve o establece un valor de tipo String que indica el archivo de conexión de datos de Microsoft Office o el archivo similar que se usó para crear la tabla de consulta.

ActiveCell.QueryTable.SourceConnectionFile =

SourceDataFile Devuelve o establece un valor de tipo String que indica el archivo de datos de origen de una tabla de consulta.

ActiveCell.QueryTable.SourceDataFile =

TextFileCommaDelimiter True si la coma es el delimitador al importar un archivo de texto en una tabla de consulta.

ActiveCell.QueryTable.TextFileCommaDelimiter = True

TextFileConsecutiveDelimiter True si se tratan los delimitadores consecutivos como un único delimitador al importar un archivo de texto en una tabla de consulta.

ActiveCell.QueryTable.TextFileConsecutiveDelimiter = True

TextFileDecimalSeparator Devuelve o establece el carácter separador decimal que Microsoft Excel usa al importar un archivo de texto en una tabla de consulta.

ActiveCell.QueryTable.TextFileDecimalSeparator = ","

TextFileFixedColumnWidths Devuelve o establece una matriz de enteros que corresponden a los anchos de las columnas (en caracteres) del archivo de texto que va a importar en una tabla de consulta.

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

TextFileOtherDelimiter Devuelve o establece el carácter utilizado como delimitador al importar un archivo de texto en una tabla de consulta.

ActiveCell.QueryTable.TextFileOtherDelimiter =

TextFileParseType Devuelve o establece el formato de columna para los datos en el archivo de texto que se va a importar en una tabla de consulta.

ActiveCell.QueryTable.TextFileParseType = xlDelimited

TextFilePlatform Devuelve o establece el origen del archivo de texto que se va a importar en la tabla de consulta.

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

TextFilePromptOnRefresh True si desea especificar el nombre del archivo de texto importado cada vez que se actualice la tabla de consulta.

ActiveCell.QueryTable.TextFilePromptOnRefresh = True

TextFileSemicolonDelimiter True si el punto y coma es el delimitador al importar un archivo de texto en una tabla de consulta y si el valor de la propiedad TextFileParseType es xlDelimited.

ActiveCell.QueryTable.TextFileSemicolonDelimiter = True

TextFileSpaceDelimiter True si el carácter de espacio es el delimitador al importar un archivo de texto en una tabla de consulta.

ActiveCell.QueryTable.TextFileSpaceDelimiter = True

TextFileTabDelimiter True si se usa el carácter de tabulación como delimitador al importar un archivo de texto en una tabla de consulta.

ActiveCell.QueryTable.TextFileTabDelimiter = True

TextFileTextQualifier Devuelve o establece el calificador de texto usado al importar un archivo de texto en una tabla de consulta.

ActiveCell.QueryTable.TextFileTextQualifier = xlTextQualifierDoubleQuote

TextFileThousandsSeparator Devuelve o establece el carácter separador de miles que utiliza Microsoft Excel cuando se importa un archivo de texto en una tabla de consulta.

ActiveCell.QueryTable.TextFileThousandsSeparator =  "."

TextFileTrailingMinusNumbers True para que Microsoft Excel trate los números importados como texto que comienzan con - un símbolo (menos) como un símbolo negativo.

ActiveCell.QueryTable.TextFileTrailingMinusNumbers = True

TextFileVisualLayout Devuelve o establece una enumeración XlTextVisualLayoutType que indica si el diseño visual del texto que se va a importar es de izquierda a derecha o de derecha a izquierda.

ActiveCell.QueryTable.TextFileVisualLayout = xlTextVisualLTR

WebSingleBlockTextImport True si los datos de las

 etiquetas HTML de la Página Web especificada se procesan todos a la vez cuando se importa la página a una tabla de consulta.

ActiveCell.QueryTable.WebSingleBlockTextImport = True

WorkbookConnection Devuelve el objeto WorkbookConnection que utiliza la tabla de consulta.

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

QueryTables.Count Devuelve un valor Long que representa el número de objetos de la colección.

Dim lngCount As Long
lngCount = ActiveSheet.QueryTables.Count

QueryTables.Parent Devuelve el objeto primario del objeto especificado.

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