Compartilhar via


Método QueryTables.Add (Excel)

Cria uma nova tabela de consulta.

Sintaxe

expressão. Adicionar (Ligaçã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;". O 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 Web. Uma cadeia no formulário URL;<url> onde URL; é necessária, mas não localizada, e o resto da cadeia é utilizada para o URL da consulta Web.
  • Data Finder. Uma cadeia no formulário FINDER;<data finder file path> onde FINDER; é necessário, 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 ficheiro é lido quando o método Add é executado; as chamadas subsequentes para a propriedade Ligação da tabela de consulta irão devolver cadeias a partir ODBC; de ou URL; conforme adequado.
  • Um arquivo de texto. Uma cadeia no formulário TEXT;<text file path and name> onde TEXT; é necessário, mas não localizada.
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. Este argumento é opcional quando está a utilizar uma origem de dados ODBC (se não o especificar aqui, deve defini-lo utilizando 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.

Valor de retorno

Um objeto QueryTable que representa a nova tabela de consulta.

Comentários

Uma consulta criada por este 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.