Cómo utilizar la consulta mediante la técnica de formulario (QBF) en Microsoft Access

Para una versión de Microsoft Access 2000 de este artículo, consulte
209645 .
Para Microsoft Access 97 y la versión anterior de este artículo, consulte
95931 .

Moderada: Requiere macro básico, codificación y conocimientos de interoperabilidad.

En este artículo sólo se aplica a una base de datos de Microsoft Access (.accdb y .mdb).

Resumen

En este artículo se muestra cómo utilizar un formulario para especificar los criterios para una consulta. Esta técnica se denomina consulta por formulario (QBF).

Más información

En la técnica QBF, se crea un formulario en el que introducir criterios de consulta. Este formulario contiene cuadros de texto en blanco. Cada cuadro de texto representa un campo en una tabla que desea consultar. Efectúe entradas sólo en los cuadros de texto para el que desea especificar criterios de búsqueda.

El formulario QBF se parece a un formulario de entrada de datos que tiene campos que coinciden con los campos de una tabla. Una tabla que tiene campos para nombre, dirección, ciudad, estado y código postal puede tener un formulario QBF que tenga los campos correspondientes. Para seleccionar determinados registros, puede introducir cualquier combinación de criterios de búsqueda en el formulario. Puede especificar sólo una ciudad o una ciudad y un estado, o sólo un código postal o cualquier otra combinación. Los campos que se deja en blanco se omiten. Al hacer clic en un botón de comando en el formulario, Access ejecuta una consulta que utiliza los criterios de búsqueda de su formulario.

Para utilizar la técnica QBF, siga estos pasos:
  1. Abra la base de datos de ejemplo Neptuno.mdb.
  2. Crear un nuevo formulario que no esté basado en ninguna tabla o consulta y guárdelo como QBF_Form.
  3. En el formulario nuevo, cree dos cuadros de texto y un botón de comando que tiene las propiedades siguientes. A continuación, guarde el formulario:
       Text box 1
    ------------------
    Name: WhatCustomer

    Text box 2
    ------------------
    Name: WhatEmployee

    Command button 1:
    ------------------
    Caption: Search
    OnClick: QBF_Macro
  4. Cree la siguiente macro y guárdela como QBF_Macro:
       Action: OpenQuery
    Query Name: QBF_Query
    View: Datasheet
    Data Mode: Edit
  5. Cree la siguiente consulta nueva basada en la tabla Pedidos y, a continuación, guárdelo como QBF_Query:
       Field: CustomerID
    Sort: Ascending
    Criteria: Forms![QBF_Form]![WhatCustomer] Or Forms![QBF_Form]![WhatCustomer] Is Null

    Field: EmployeeID
    Sort: Ascending
    Criteria: Forms![QBF_Form]![WhatEmployee] Or Forms![QBF_Form]![WhatEmployee] Is Null

    NOTE: When you type the criteria, make sure that you
    type the entire criteria in a single Criteria field;
    do not split the criteria by placing the 'Or' section
    on a separate row.

    Field: OrderID

    Field: OrderDate
  6. Abra QBF_Form en la vista formulario. Escriba las siguientes combinaciones de criterios. Haga clic en Buscar después de cada combinación:
       Customer ID   Employee ID  Result
    -------------------------------------------------------
    <blank> <blank> All 830 orders

    AROUT <blank> 13 orders

    AROUT 4 4 AROUT orders for employee 4

    <blank> 4 156 orders for employee 4
Después de ver el conjunto de resultados para cada consulta, cierre la ventana de la hoja de datos. A continuación, comenzar la búsqueda siguiente. Cada vez que haga clic en el botón de búsqueda , los parámetros de la consulta QBF filtrar los datos según los criterios de búsqueda que especificó en el formulario de consulta QBF.

Notas sobre los criterios de parámetro QBF

La consulta QBF de ejemplo en este artículo implementa los criterios de la consulta como
¡Formularios! Nombreformulario! ControlName ¡O formularios! Nombreformulario! ControlName Es Null
para filtrar los datos. Estos criterios devuelven todos los registros coincidentes. Si el valor de los criterios es null, se devuelven todos los registros para el campo especificado.

Puede especificar cualquiera de los criterios alternativos siguientes para devolver resultados ligeramente diferentes.

Nota: en los criterios de ejemplo siguientes, un subrayado (_) se utiliza como un carácter de continuación de línea. Quite el subrayado del final de la línea al volver a crear estos criterios.
  • ¡Como formularios! Nombreformulario! ControlName & "*" o _
    ¡Formularios! Nombreformulario! ControlName Es Null

    Esta instrucción de criterios es el mismo que el ejemplo QBF anterior, excepto en que puede consultar con un carácter comodín. Por ejemplo, si escribe a "Jo" en un campo utilizando esta instrucción de criterios, la consulta devuelve todos los registros en el campo que comienza por "Jo". Esto incluye Johnson, Jones, Johanna y así sucesivamente.
  • ¡Entre los formularios! Nombreformulario! ¡StartDate y formularios! Nombreformulario! EndDate o _
    ¡Formularios! Nombreformulario! StartDate es Null puede utilizar esta instrucción de criterios para consultar un campo de fecha utilizando cuadros de texto de Fecha inicial y Fecha final en el formulario de consulta. Se devuelven los registros cuyas fechas de inicio y final se encuentran entre los valores que especifique en el formulario de consulta. Sin embargo, si omite un valor de Fecha de inicio en el formulario, la consulta devuelve todos los registros, independientemente del valor de la Fecha de finalización .

  • ¡Como formularios! Nombreformulario! ControlName & "*" o es nulo

    Esta instrucción de criterios devuelve tanto registros que coincidan con los criterios y que son null. Si los criterios son nulos, se devuelven todos los registros. Observe que el asterisco (*) se considera un parámetro porque forma parte de una expresión mayor Like. Dado que el asterisco es un valor de criterio codificado de forma rígida (por ejemplo, como "*"), se devuelven los registros con valores null.
  • Like IIf(IsNull(Forms!FormName![ControlName]), _
    "*",[Forms]![FormName]![ControlName])


    Esta instrucción de criterios devuelve todos los registros que coincidan con los criterios. Si se especifica ningún criterio en el formulario de consulta, se devuelven todos los registros que no null.
  • IIf(IsNull(Forms!FormName![ControlName]), _
    [FieldName],[Forms]![FormName]![ControlName])


    Devuelve todos los registros que coincidan con los criterios. Si se especifica ningún criterio en el formulario de consulta, todos los registros que no null se devuelven (el mismo resultado que el ejemplo anterior).
Para obtener información adicional acerca de las consultas de parámetros, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
210530 cómo crear una instrucción in() con parámetros

209261 mostrando todos los registros (incluido null) en una consulta de parámetros

Propiedades

Id. de artículo: 304428 - Última revisión: 22 ene. 2017 - Revisión: 2

Comentarios