Compartir a través de


Método Application.BuildCriteria (Access)

El método BuildCriteria devuelve una cadena de criterios analizados tal como aparecería en la cuadrícula de diseño de la consulta, en el modo Filtrar por formulario o Filtrar por formulario del servidor . Por ejemplo, desea establecer filtro o la propiedad ServerFilter basándose en criterios variables del usuario de un formulario. Use el método BuildCriteria para construir el argumento de expresión de cadena para la propiedad Filter o ServerFilter . Cadena.

Sintaxis

expresión. BuildCriteria (Field, FieldType, Expression)

expresión Variable que representa un objeto Application.

Parámetros

Nombre Obligatorio/opcional Tipo de datos Descripción
Field Obligatorio String Campo para el que se desean definir criterios.
FieldType Obligatorio Integer Una constante intrínseca que indica el tipo de datos del campo. Puede establecerse en uno de los valores DAO de DataTypeEnum.
Expression Obligatorio String Cadena de expresión que identifica los criterios que deben ser analizados.

Valor devuelto

Cadena

Comentarios

El método BuildCriteria le permite crear fácilmente criterios para un filtro basándose en entradas de usuario. Analiza el argumento de expresión de la misma manera que se analizaría la expresión si se hubiera escrito en la cuadrícula de diseño de la consulta, en el modo Filtrar por formulario o Filtro de servidor por formulario .

Por ejemplo, un usuario que crea una consulta en una tabla Orders podría restringir el conjunto de resultados a los pedidos realizados después del 1 de enero de 1995 estableciendo criterios en un campo OrderDate . El usuario puede escribir una expresión como la siguiente en la fila Criterios debajo del campo OrderDate :

1-1-95

Microsoft Access analiza automáticamente esta expresión y devuelve la siguiente expresión:

#1/1/95#

El método BuildCriteria ofrece el mismo análisis desde el código de Visual Basic. Por ejemplo, para devolver la cadena el anterior correctamente analizada, se pueden suministrar los siguientes argumentos al método BuildCriteria:

Dim strCriteria As String 
strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95")

Dado que necesita proporcionar criterios para la propiedad Filter en forma analizada correctamente, puede usar el método BuildCriteria para construir una cadena analizada correctamente.

Use el método BuildCriteria para construir una cadena con varios criterios si esos criterios hacen referencia al mismo campo. Por ejemplo, puede usar el método BuildCriteria con los argumentos siguientes para construir una cadena con varios criterios relacionados con el campo OrderDate :

strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95 and <5-1-95")

Este ejemplo devuelve la siguiente cadena de criterios:

OrderDate>#1/1/95# And OrderDate<#5/1/95#

Sin embargo, si desea construir una cadena de criterios que hace referencia a varios campos, debe crear las cadenas y concatene a sí mismo. Por ejemplo, si desea construir criterios para un filtro para mostrar los registros de los pedidos hechos después del 1-1-95 y para que el importe sea menor de $50, deberá utilizar el método BuildCriteria dos veces y concatene las cadenas resultantes.

Ejemplo:

El ejemplo siguiente solicita al usuario que escriba las primeras letras del nombre de un producto y, a continuación, usa el método BuildCriteria para construir una cadena de criterios basada en la entrada del usuario. A continuación, el procedimiento proporciona esta cadena como argumento de la propiedad Filter de un formulario productos. Por último, se establece la propiedad FilterOn para aplicar el filtro.

Sub SetFilter() 
 Dim frm As Form, strMsg As String 
 Dim strInput As String, strFilter As String 
 
 ' Open Products form in Form view. 
 DoCmd.OpenForm "Products" 
 ' Return Form object variable pointing to Products form. 
 Set frm = Forms!Products 
 strMsg = "Enter one or more letters of product name " _ 
 & "followed by an asterisk." 
 ' Prompt user for input. 
 strInput = InputBox(strMsg) 
 ' Build criteria string. 
 strFilter = BuildCriteria("ProductName", dbText, strInput) 
 ' Set Filter property to apply filter. 
 frm.Filter = strFilter 
 ' Set FilterOn property; form now shows filtered records. 
 frm.FilterOn = True 
End Sub

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.