Método QueryTables.Add (Excel)

Crea una nueva tabla de consultas.

Sintaxis

más sencilla.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 obligatorio pero no localizado y el resto de la cadena se usa para la dirección URL de la consulta web.
  • Data Finder. Una cadena en la forma FINDER;<data finder file path> donde FINDER; es obligatorio 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 subsiguientes a la propiedad Connection de la tabla de consultas devolverán cadenas que empiecen por ODBC; o URL; , según corresponda.
  • Un archivo de texto. Una cadena en la forma TEXT;<text file path and name> donde TEXT; es obligatorio pero no localizado.
Destino Obligatorio Rango 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 lo especifica aquí, debe establecerlo mediante la propiedad Sql de la tabla de consulta antes de que se actualice 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

Un objeto QueryTable que representa la nueva tabla de consultas.

Comentarios

No se ejecuta una consulta creada mediante este método 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.