Classe QueryTables (Excel VBA)

Uma coleção de objetos QueryTable . Para usar uma variável de classe QueryTables, ela primeiro precisa ser instanciada por exemplo


Dim qts as QueryTables
Set qts = ActiveSheet.QueryTables

For Each

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


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

Add

Cria uma nova tabela de consulta.

Uma consulta criada por esse método não é executada até o método Refresh ser chamado.

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

O seguinte argumento é opcional

Connection (String) - A fonte de dados para a tabela de consulta. Pode ser um dos seguintes: Uma cadeia de caracteres com uma cadeia de conexão OLE DB ou ODBC. A cadeia de conexão ODBC tem o formato "ODBC;". A cadeia de conexão ODBC tem o ODBC;formato. Um objeto Recordset ADO ou DAO. Os dados são lidos do conjunto de registros ADO ou DAO. O Microsoft Excel mantém o conjunto de recursos até a tabela de consulta ser excluída ou a conexão ser alterada. A tabela de consulta resultante não pode ser editada. Uma consulta à Web. Uma cadeia de caracteres no URL; formulário URL; é necessária, mas não localizada, e o restante da cadeia de caracteres é usado para a URL da consulta da Web. Uma cadeia de caracteres no FINDER; formulário FINDER; é necessária, mas não localizada. O resto da cadeia de caracteres é o caminho e o nome do arquivo de um arquivo do Data Finder (*.dqy ou *.iqy). O arquivo é lido quando o método Add é executado; as chamadas subsequentes à propriedade Connection da tabela de consulta retornarão cadeias ODBC; de URL; caracteres que começam ou conforme apropriado. Um arquivo de texto. Uma cadeia de caracteres no TEXT; formulário TEXT; é necessária, mas não localizada.

Destination (Range) - A célula no 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 deverá estar na planilha com o objeto QueryTables especificado por expressão.

Optional arguments

The following argument is optional

Sql (QueryTable) - A cadeia de caracteres de consulta SQL a ser executada na fonte de dados ODBC. Esse argumento é opcional quando você está usando uma fonte de dados ODBC (se não especificá-lo aqui, você deve defini-lo usando a propriedade SQL da tabela de consulta antes de a tabela ser atualizada). Não é possível usar este argumento quando um objeto QueryTable, arquivo de texto ou objeto Recordset ADO ou DAO é especificado como fonte de dados.

Count

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


Dim lngCount As Long
lngCount = ActiveSheet.QueryTables.Count

Item

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

Item (Index)

Index: O nome ou número de índice do objeto.


Dim qrytbl As QueryTable
Set qrytbl = ActiveSheet.QueryTables(Index:=1)