Classe QueryTable (Excel VBA)

A classe QueryTable representa uma tabela de planilha construída a partir de dados retornados de uma fonte de dados externa, como um SQL Server ou um banco de dados do Microsoft Access.

Os principais procedimentos da classe QueryTable são Delete e QueryTables.Add

Set

Para usar uma variável de classe QueryTable, ela primeiro precisa ser instanciada por exemplo

Dim qrytbl as QueryTable
Set qrytbl = ActiveCell.QueryTable

Os procedimentos a seguir podem ser usados ​​para definir variáveis ​​do tipo QueryTable: ListObject.QueryTable, QueryTables.Item, QueryTables.Add, Range.QueryTable e Worksheet.QueryTables

For Each

Aqui está um exemplo de processamento dos itens QueryTable em uma coleção.

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

Temas

Alguns procedimentos nesta classe foram agrupados em temas e são descritos em páginas de tema separadas

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

Métodos

Estes são os principais métodos da classe QueryTable

Delete - Exclui o objeto.

ActiveCell.QueryTable.Delete

QueryTables.Add - Cria uma nova tabela de consulta.

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

Estes são os principais métodos da classe

CancelRefresh - Cancela todas as consultas em segundo plano da tabela de consultas especificada. Use a Propriedade Refreshing para determinar se uma consulta em segundo plano está em andamento no momento.

Refresh - Atualiza um intervalo de dados externos em um objeto QueryTable .

ResetTimer - Redefine o timer de atualização para a tabela de consulta especificada ou o relatório de tabela dinâmica para o último intervalo definido por você usando a propriedade RefreshPeriod .

SaveAsODC - Salva a origem do cache de tabela de consulta como um arquivo de conexão de dados do Microsoft Office.

QueryTables.Item - Retorna um único objeto de uma coleção.

Propriedades

AdjustColumnWidth True se as larguras das colunas forem automaticamente ajustadas para que seu conteúdo se encaixe melhor a cada atualização da tabela de consulta especificada. False se as larguras das colunas não forem ajustadas automaticamente a cada atualização. O valor padrão é True. Boolean de leitura/gravação.

ActiveCell.QueryTable.AdjustColumnWidth = True

BackgroundQuery True se as consultas à tabela de consulta forem efetuadas de maneira assíncrona em segundo plano. Boolean de leitura/gravação.

ActiveCell.QueryTable.BackgroundQuery = True

CommandText Retorna ou define a sequência de comando para a fonte de dados especificada. de leitura/gravação.

ActiveCell.QueryTable.CommandText =

CommandType Retorna ou define uma destas constantes XlCmdType : xlCmdCube, xlCmdDefault, xlCmdSqlou xlCmdTable. A constante que é retornada ou definida descreve o valor da propriedade CommandText . O valor padrão é xlCmdSQL. XlCmdType de leitura/gravação.

ActiveCell.QueryTable.CommandType = xlCmdCube

Connection Retorna ou define uma cadeia de caracteres que contém um dos seguintes:.

ActiveCell.QueryTable.Connection =

Destination Retorna a célula do canto superior esquerdo do intervalo de destino da tabela de consulta o intervalo onde a tabela de consulta resultante será colocada. O intervalo de destino deve estar na planilha contendo o objeto QueryTable. Somente leitura intervalo.

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

EditWebPage Retorna ou define a URL Uniform Resource Locator da página da Web para uma consulta à Web. de leitura/gravação.

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

FieldNames True se os nomes dos campos da fonte de dados aparecerem como títulos de coluna para os dados retornados. O valor padrão é True. Boolean de leitura/gravação.

ActiveCell.QueryTable.FieldNames = True

FillAdjacentFormulas True se as fórmulas à direita da tabela de consulta especificada forem atualizadas automaticamente sempre que a tabela de consulta for atualizada. Boolean de leitura/gravação.

ActiveCell.QueryTable.FillAdjacentFormulas = True

ListObject Retorna um objeto ListObject para o objeto QueryTable . ListObject somente leitura.

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

MaintainConnection True se a conexão com a fonte de dados especificada for mantida após a atualização e até a pasta de trabalho ser fechada. O valor padrão é True. Boolean de leitura/gravação.

ActiveCell.QueryTable.MaintainConnection = True

Name Retorna ou define um valor String que representa o nome do objeto.

ActiveCell.QueryTable.Name =

Parameters Retorna uma coleção Parameters que representa os parâmetros da tabela de consulta. Somente leitura.

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

Parent Retorna o objeto pai do objeto especificado. Somente leitura.

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

PostText Retorna ou define a cadeia de caracteres usada com o método post de inserir dados em um servidor Web para retornar dados de uma consulta da Web. String de leitura/gravação.

ActiveCell.QueryTable.PostText =

PreserveFormatting True se alguma formatação comum às cinco primeiras linhas de dados for aplicada às novas linhas de dados na tabela de consulta. Células não usadas não são formatadas. A propriedade será False se a última AutoFormatação aplicada à tabela de consulta for aplicada às novas linhas de dados. O valor padrão é True.

ActiveCell.QueryTable.PreserveFormatting = True

QueryType Indica o tipo de consulta usado pelo Microsoft Excel para preencher a tabela de consulta. Somente leitura XlQueryType.

Dim xqtQueryType As XlQueryType
xqtQueryType = ActiveCell.QueryTable.QueryType

Recordset Retorna ou define um objeto Recordset que é usado como a fonte de dados para a tabela de consulta especificada. Leitura/gravação.

ActiveCell.QueryTable.Recordset =

Refreshing True se houver uma consulta em segundo plano em andamento para a tabela de consulta especificada. Boolean somente leitura.

Dim booRefreshing As Boolean
booRefreshing = ActiveCell.QueryTable.Refreshing

RefreshOnFileOpen True se a tabela de consulta ou o cache de tabela dinâmica for automaticamente atualizado toda vez que a pasta de trabalho for aberta. O valor padrão é False. Boolean de leitura/gravação.

ActiveCell.QueryTable.RefreshOnFileOpen = True

RefreshPeriod Retorna ou define o número de minutos entre as atualizações. Long de leitura/gravação.

ActiveCell.QueryTable.RefreshPeriod =

RefreshStyle Retorna ou define a maneira como as linhas da planilha especificada são adicionadas ou excluídas para acomodar o número de linhas em um conjunto de registros retornado por uma consulta. Leitura/gravação XlCellInsertionMode.

ActiveCell.QueryTable.RefreshStyle = xlInsertDeleteCells

ResultRange Retorna um objeto Range que representa a área da planilha ocupada pela tabela de consulta especificada. Somente leitura.

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

RobustConnect Retorna ou define como a tabela de consulta se conecta à sua fonte de dados. Leitura/gravação XlRobustConnect.

ActiveCell.QueryTable.RobustConnect = xlAlways

SaveData True se os dados do relatório da tabela de consulta forem salvos com a pasta de trabalho. False se somente a definição de relatório for salva. Boolean de leitura/gravação.

ActiveCell.QueryTable.SaveData = True

SavePassword True se a informação de senha de uma sequência de conexão ODBC for salva junto com a consulta especificada. False se a senha for removida. Boolean de leitura/gravação.

ActiveCell.QueryTable.SavePassword = True

Sort Retorna os critérios de classificação do intervalo da tabela de consulta. Somente leitura.

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

SourceConnectionFile Retorna ou define um String que indica o arquivo de conexão de dados do Microsoft Office ou um arquivo semelhante usado para criar a tabela de consulta. Leitura/gravação.

ActiveCell.QueryTable.SourceConnectionFile =

SourceDataFile Retorna ou define um valor String que indica o arquivo da fonte de dados referente a uma tabela de consulta.

ActiveCell.QueryTable.SourceDataFile =

TextFileCommaDelimiter True se a vírgula for o delimitador quando você importar um arquivo de texto para uma tabela de consulta. False se desejar usar algum outro caractere como o delimitador. O valor padrão é False. Boolean de leitura/gravação.

ActiveCell.QueryTable.TextFileCommaDelimiter = True

TextFileConsecutiveDelimiter True se os delimitadores consecutivos forem tratados como um único delimitador quando você importar um arquivo de texto para uma tabela de consulta. O valor padrão é False. Boolean de leitura/gravação.

ActiveCell.QueryTable.TextFileConsecutiveDelimiter = True

TextFileDecimalSeparator Retorna ou define o caractere separador decimal que o Microsoft Excel usa quando você importa um arquivo de texto para uma tabela de consulta. O padrão é o caractere separador decimal do sistema. String de leitura/gravação.

ActiveCell.QueryTable.TextFileDecimalSeparator = ","

TextFileFixedColumnWidths Retorna ou define uma matriz de inteiros que correspondem às larguras das colunas em caracteres no arquivo de texto que você está importando para uma tabela de consulta. As larguras válidas vão de 1 a 32767 caracteres. de leitura/gravação.

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

TextFileOtherDelimiter Retorna ou define o caractere usado como o delimitador quando você importa um arquivo de texto para uma tabela de consulta. O valor padrão é NULL. String de leitura/gravação.

ActiveCell.QueryTable.TextFileOtherDelimiter =

TextFileParseType Retorna ou define o formato de coluna para os dados no arquivo de texto que você está importando para uma tabela de consulta. Leitura/gravação XlTextParsingType.

ActiveCell.QueryTable.TextFileParseType = xlDelimited

TextFilePlatform Retorna ou define a origem do arquivo de texto que você está importando para a tabela de consulta. Essa propriedade determina que página de código será usada durante a importação de dados. Leitura/gravação XlPlatform.

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

TextFilePromptOnRefresh True se você desejar especificar o nome do arquivo de texto importado sempre que a tabela de consulta for atualizada. A caixa de diálogo Importar arquivo de texto permite que você especifique o caminho e o nome do arquivo. O valor padrão é False. Boolean de leitura/gravação.

ActiveCell.QueryTable.TextFilePromptOnRefresh = True

TextFileSemicolonDelimiter True se o ponto-e-vírgula é o delimitador quando você importa um arquivo de texto para uma tabela de consulta, e se o valor da propriedade TextFileParseType for xlDelimited. O valor padrão é False. Boolean de leitura/gravação.

ActiveCell.QueryTable.TextFileSemicolonDelimiter = True

TextFileSpaceDelimiter True se o caractere de espaço for o delimitador quando você importar um arquivo de texto para uma tabela de consulta. O valor padrão é False. Boolean de leitura/gravação.

ActiveCell.QueryTable.TextFileSpaceDelimiter = True

TextFileTabDelimiter True se o caractere de tabulação for o delimitador quando você importar um arquivo de texto para uma tabela de consulta. O valor padrão é False. Boolean de leitura/gravação.

ActiveCell.QueryTable.TextFileTabDelimiter = True

TextFileTextQualifier Retorna ou define o qualificador de texto quando você importa um arquivo de texto para uma tabela de consulta. O qualificador de texto especifica que os dados incluídos estão em formato de texto. Leitura/gravação XlTextQualifier.

ActiveCell.QueryTable.TextFileTextQualifier = xlTextQualifierDoubleQuote

TextFileThousandsSeparator Retorna ou define o caractere separador de milhar que o Microsoft Excel usa quando você importa um arquivo de texto para uma tabela de consulta. O padrão é o caractere separador de milhar do sistema. String de leitura/gravação.

ActiveCell.QueryTable.TextFileThousandsSeparator =  "."

TextFileTrailingMinusNumbers True para o Microsoft Excel tratar os números importados como texto que - comece com um símbolo de menos como um símbolo negativo. False para o Excel tratar os números importados como texto que - começam com um símbolo como texto. Boolean de leitura/gravação.

ActiveCell.QueryTable.TextFileTrailingMinusNumbers = True

TextFileVisualLayout Retorna ou define uma enumeração XlTextVisualLayoutType que indica se o layout visual do texto que está sendo importado é da esquerda para a direita ou da direita para a esquerda.

ActiveCell.QueryTable.TextFileVisualLayout = xlTextVisualLTR

WebSingleBlockTextImport True se os dados das marcas

 HTML na página da Web especificada são processados todos ao mesmo tempo quando você importa a página para uma tabela de consulta. False se os dados forem importados em blocos de linhas contíguas para que as linhas de cabeçalho sejam reconhecidas como tais. O valor padrão é False. Boolean de leitura/gravação.

ActiveCell.QueryTable.WebSingleBlockTextImport = True

WorkbookConnection Retorna o objeto WorkbookConnection que a tabela de consulta usa. Somente leitura.

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

QueryTables.Count Retorna um valor Long que representa o número de objetos na coleção.

Dim lngCount As Long
lngCount = ActiveSheet.QueryTables.Count

QueryTables.Parent Retorna o objeto pai do objeto especificado. Somente leitura.

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