Método QueryTables.Add (Excel)

Crea una nueva tabla de consultas.

Sintaxis

expresión. Agregar (Conexión, Destino, Sql)

Expresión Variable que representa un objeto QueryTables .

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Connection Obligatorio Variant Origen de datos de la tabla de consultas. Puede ser uno de los elementos siguientes:
  • Una cadena que contiene una base de datos OLE DB o una cadena de conexión ODBC. La cadena de conexión ODBC tiene el formato ODBC;<connection string>.
  • Un objeto QueryTable desde el que se copia inicialmente la información de la consulta, incluida la cadena de conexión y el texto SQL, pero sin incluir el rango Destination. Si se especifica un objeto QueryTable, se omitirá el argumento Sql.
  • Un objeto Recordset ADO o DAO. Los datos se leen del conjunto de registros ADO o DAO. Microsoft Excel conserva el conjunto de registros hasta que se elimine la tabla de consultas o cambie la conexión. La consulta resultante no se puede editar.
  • Una consulta web. Una cadena en el formulario URL;<url> donde URL; es necesaria pero no localizada y el resto de la cadena se usa para la dirección URL de la consulta web.
  • Data Finder. Cadena con el formato FINDER;<data finder file path> donde FINDER; es necesario pero no localizado. El resto de la cadena es la ruta de acceso y el nombre de archivo de un archivo Data Finder (*.dqy o *.iqy). El archivo se lee cuando se ejecuta el método Add ; Las llamadas posteriores a la propiedad Connection de la tabla de consulta devolverán cadenas a ODBC; partir de o URL; según corresponda.
  • Un archivo de texto. Cadena con el formato TEXT;<text file path and name> donde TEXT; es necesario pero no localizado.
Destino Obligatorio Range Celda de la esquina superior izquierda del rango de destino de la tabla de consultas (el rango en el que se colocará la tabla de consultas). El rango de destino debe estar en la hoja de cálculo que contiene el objeto QueryTables que especifica la expresión.
Sql Opcional Variant Cadena SQL que se debe ejecutar en el origen de datos ODBC. Este argumento es opcional cuando se usa un origen de datos ODBC (si no se especifica aquí, debe establecerlo mediante la propiedad Sql de la tabla de consulta antes de actualizar la tabla). No puede usar este argumento cuando un objeto QueryTable, un archivo de texto o un objeto Recordset de ADO o DAO se especifica como el origen de datos.

Valor devuelto

Objeto QueryTable que representa la nueva tabla de consulta.

Comentarios

Una consulta creada por este método no se ejecuta hasta que se llama al método Refresh .

Ejemplo:

En este ejemplo, se crea una tabla de consultas basada en un conjunto de registros de ADO. En el ejemplo, se conserva la clasificación de columnas existente y la configuración de filtrado, así como la información de diseño para la compatibilidad con versiones 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

En este ejemplo, se importa un archivo de texto de ancho fijo en una nueva tabla de consultas. La primera columna del archivo de texto tiene un ancho de cinco caracteres y se importa como texto. El ancho de la segunda columna es de cuatro caracteres y se omite. El resto del archivo de texto se importa en la tercera columna y tiene aplicado el formato General.

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

En este ejemplo, se crea una nueva tabla de consultas en la hoja de cálculo activa.

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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.