Compartilhar via


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:
  • 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 formulário ODBC;<connection string>.
  • A QueryTable object from which the query information is initially copied, including the connection string and the SQL text, but not including the Destination range. Specifying a QueryTable object causes the Sql argument to be ignored.
  • 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 da Web. Uma cadeia de caracteres no formulário URL;<url> em que URL; é necessária, mas não localizada e o restante da cadeia de caracteres é usada para a URL da consulta Web.
  • Data Finder. Uma cadeia de caracteres no formulário FINDER;<data finder file path> em que FINDER; é necessário, mas não localizado. 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; chamadas subsequentes para a propriedade Connection da tabela de consulta retornarão cadeias de caracteres começando com ODBC; ou URL; conforme apropriado.
  • Um arquivo de texto. Uma cadeia de caracteres no formulário TEXT;<text file path and name> em que TEXT; é necessário, mas não localizado.
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.