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;
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)