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:
|
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.