Clase Parameter - un solo parámetro empleado en una consulta de parámetros (Excel VBA)

La clase Parameter representa un solo parámetro empleado en una consulta de parámetros.

Para usar una variable de clase Parameter, primero debe ser instanciado, por ejemplo

Dim prm as Parameter
Set prm = ActiveCell.QueryTable.Parameters(Index:=1)

Los siguientes procedimientos se pueden usar para establecer variables de clase Parameter : Parameters.Add y Parameters.Item.

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos Parameter en una colección.

Dim prm As Parameter
For Each prm In ActiveCell.QueryTable.Parameters
	
Next prm

DataType

Devuelve o establece un valor XlParameterDataType que representa el tipo de datos del parámetro de consulta especificado. Aquí puede ver valores posibles para XlParameterDataType.

ActiveCell.QueryTable.Parameters(1).DataType = xlParamTypeBigInt

Name

Devuelve o establece un valor de tipo String que representa el nombre del objeto.

ActiveCell.QueryTable.Parameters(1).Name =

PromptString

Devuelve la frase que solicita al usuario el valor de un parámetro en una consulta de parámetros.

Dim strPromptString As String
strPromptString = ActiveCell.QueryTable.Parameters(1).PromptString

RefreshOnChange

Es True si la tabla de consulta especificada se actualiza cada vez que se cambia el valor del parámetro de una consulta de parámetros.

Esta propiedad se puede establecer en True sólo si utiliza parámetros de tipo xlRange y si el valor del parámetro al que se hace referencia se encuentra en una sola celda.

ActiveCell.QueryTable.Parameters(1).RefreshOnChange = True

SetParam

Define un parámetro para la tabla de consulta especificada.

SetParam (Type, Value)

Set qt = Sheets("sheet1").QueryTables(1) 
qt.Sql = "SELECT * FROM authors WHERE (city=?)" 
Set param1 = qt.Parameters.Add("City Parameter", _ 
 xlParamTypeVarChar) 
param1.SetParam xlConstant, "Oakland" 
qt.Refresh

Arguments

Estos son los argumentos con nombre :

Type (XlParameterType) - Una de las constantes de XlParameterType, que especifica el tipo de parámetro.

Posibles valores de retorno son xlConstant - Utiliza el valor especificado por el argumento Value, xlPrompt - Muestra un cuadro de diálogo que solicita el valor al usuario, xlRange - Utiliza el valor de la celda de la esquina superior izquierda del rango.

Value (Variant) - Valor del parámetro especificado, según se muestra en la descripción del argumento Type.

SourceRange

Devuelve un objeto Range que representa la celda que contiene el valor del parámetro de consulta especificado.

Set qt = Sheets("sheet1").QueryTables(1) 
Set param1 = qt.Parameters(1) 
Set r = param1.SourceRange 
r.Value = "New York" 
qt.Refresh

Type

Devuelve un valor XlParameterType que representa el tipo de parámetro. Posibles valores de retorno son xlConstant - Utiliza el valor especificado por el argumento Value, xlPrompt - Muestra un cuadro de diálogo que solicita el valor al usuario, xlRange - Utiliza el valor de la celda de la esquina superior izquierda del rango.

Dim xptType As XlParameterType
xptType = ActiveCell.QueryTable.Parameters(1).Type

Value

Devuelve un valor de tipo Variant que representa el valor del parámetro.

Para obtener más información, vea el objeto Parameter.

Dim varValue As Variant
varValue = ActiveCell.QueryTable.Parameters(1).Value