Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cria uma nova tabela de consulta.
Sintaxe
mais simples. 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ê está usando uma fonte de dados ODBC (se você não o especificar aqui, deverá 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.