Método QueryTables.Add (Excel)
Cria uma nova tabela de consulta.
Sintaxe
expressão. Adicionar (Conexão, Destino, Sql)
Expressão Uma variável que representa um objeto QueryTables .
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
Connection | Obrigatório | Variant | A fonte de dados para a tabela de consulta. Pode ser um dos seguintes:
|
Destino | Obrigatório | 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. |
Sql | Opcional | Variant | A cadeia de caracteres de consulta SQL a ser executada na fonte de dados ODBC. Esse argumento é opcional quando você estiver usando uma fonte de dados ODBC (se você não especiá-lo aqui, você deve defini-lo usando a propriedade Sql da tabela de consulta antes que a tabela seja 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. |
Valor de retorno
Um objeto QueryTable que representa a nova tabela de consulta.
Comentários
Uma consulta criada por esse método não é executada até que o método Refresh seja chamado.
Exemplo
Este exemplo cria uma tabela de consulta com base em um conjunto de registros ADO. O exemplo preserva as configurações de classificação e a filtragem de coluna existentes e as informações de layout para compatibilidade com versões anteriores.
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
Este exemplo importa um arquivo de texto de largura fixa para uma nova tabela de consulta. A primeira coluna do arquivo de texto tem cinco caracteres de largura e é importada como texto. A segunda coluna tem quatro caracteres de largura e é ignorada. O resto do arquivo de texto é importado para a terceira coluna e tem o formato Geral aplicado a ela.
Set shFirstQtr = Workbooks(1).Worksheets(1)
Set qtQtrResults = shFirstQtr.QueryTables.Add( _
Connection := "TEXT;C:\My Documents\19980331.txt",
Destination := shFirstQtr.Cells(1,1))
With qtQtrResults
.TextFileParsingType = xlFixedWidth
.TextFileFixedColumnWidths := Array(5,4)
.TextFileColumnDataTypes := _
Array(xlTextFormat, xlSkipColumn, xlGeneralFormat)
.Refresh
End With
Este exemplo cria uma nova tabela de consulta na planilha ativa.
sqlstring = "select 96Sales.totals from 96Sales where profit < 5"
connstring = _
"ODBC;DSN=96SalesData;UID=Rep21;PWD=NUyHwYQI;Database=96Sales"
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:=Range("B1"), Sql:=sqlstring)
.Refresh
End With
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.