Usar parámetros en consultas e informes

Las consultas son útiles para poder trabajar sólo con los campos de una tabla que corresponden a una tarea determinada. Cuando se desea limitar aún más los datos con los que se va a trabajar, basándose en el valor de un campo, se pueden usar criterios en la consulta. Los criterios son reglas que se incluyen en el diseño de una consulta. Estas reglas especifican valores o modelos con los que los campos deben coincidir o que los campos deben contener para que la consulta los devuelva.

Cuando se desea que una consulta pida un valor o un modelo cada vez que se ejecuta, se puede crear una consulta de parámetros (consulta de parámetros: consulta en la que un usuario especifica interactivamente uno o más valores de criterio. Una consulta de parámetros no es un tipo diferente de consulta; más bien, extiende la flexibilidad de una consulta.). También se pueden usar parámetros con un informe para que se pidan criterios cuando se ejecuta el informe. Se pueden usar formularios para que los parámetros de consulta e informe se puedan recopilar y pasar mejor de las siguientes maneras:

  • Permitiendo el uso de controles específicos del tipo de datos
  • Habilitando la persistencia de los valores de parámetro
  • Permitiendo el uso de controles de cuadro combinado (de modo que se puede elegir un valor de una lista en vez de escribirlo)
  • Permitiendo el uso de otros controles disponibles en formularios

En este artículo se explica cómo usar los parámetros en consultas e informes, y cómo usar los formularios para mejorar el uso de los parámetros.

En este artículo


Introducción

Puede usar criterios en una consulta en Microsoft Office Access 2007 para limitar el conjunto de registros que la consulta va a devolver. Consideremos el siguiente caso.

Supongamos que tiene una consulta denominada Último pedido, que devuelve los nombres y direcciones de sus clientes junto con la fecha en la que envió su último pedido. Acaba de agregar algunos productos nuevos e interesantes al inventario y al catálogo. Cada vez que envía un pedido, incluye una copia del actual catálogo. Prevé que los nuevos productos van a tener mucho éxito y desea asegurarse de que todos los clientes los conocen. Desea enviar un nuevo catálogo a todos los clientes que aún no lo hayan recibido junto con un pedido.

Por este motivo, desea crear una lista de correo con los nombres y direcciones de los clientes cuyo último pedido se envió antes de publicarse el nuevo catálogo. Para ello, aplica un criterio al campo de fecha de envío de la consulta Último pedido. El criterio especifica que la fecha que figura en ese campo debe ser anterior a la fecha en la que se inició la distribución del nuevo catálogo, por ejemplo, 31/3/2006. Cuando ejecute la consulta, obtendrá una lista de correo que contenga únicamente los clientes que no han recibido el nuevo catálogo.

Pero, ¿qué sucede si vuelve a producirse esta situación? Podría modificar el diseño de la consulta cambiando el valor especificado por el criterio pero, ¿no sería genial si la consulta pudiera solicitar una fecha y usar esa fecha para decidir qué clientes se van a incluir en la lista de correo? Para ello, deberá usar un tipo especial de criterio denominado parámetro.

Los parámetros también se pueden usar con los informes. Esto permite a los usuarios pasar al informe criterios cuando lo ejecutan. En este artículo, se muestra cómo usar Office Access 2007 para crear informes que acepten parámetros.

Puede que los cuadros de diálogo proporcionados por una consulta de parámetros sean insuficientes para sus objetivos. En esos casos, puede crear un formulario que se ajuste mejor a sus necesidades de recopilación de parámetros. En este artículo se muestra cómo crear un formulario que recopile parámetros de informe.

En este artículo se supone que está familiarizado con la creación de consultas e informes. Al menos deberá saber cómo crear una consulta de selección antes de continuar.

Para obtener más información sobre la creación de una consulta de selección o un informe, vea los artículos Crear una consulta de selección sencilla y Crear un informe sencillo.

Este artículo incluye ejemplos de cómo usar parámetros en las consultas y los informes. Sin embargo, no incluye una referencia exhaustiva para especificar criterios.

Para obtener más información sobre cómo especificar criterios, vea el artículo Ejemplos de criterios de consulta.

Volver al principio Volver al principio

Usar parámetros en consultas

Crear una consulta de parámetros es tan fácil como crear una consulta que usa criterios. Puede diseñar una consulta de modo que pida un solo dato, como un número de pieza, o varios datos, como dos fechas. Por cada parámetro, una consulta de parámetros muestra un cuadro de diálogo independiente en el que se solicita un valor para ese parámetro.

Crear una consulta de parámetros

  1. Cree una consulta de selección y, a continuación, abra la consulta en la vista Diseño (vista Diseño: vista que muestra el diseño de los siguientes objetos de base de datos: tablas, consultas, formularios, informes y macros. En la vista Diseño, puede crear objetos de base de datos nuevos y modificar el diseño de otros existentes.).
  2. En la fila Criterios del campo al que desee aplicar un parámetro, escriba entre corchetes el texto que debe aparecer en el cuadro de diálogo del parámetro; por ejemplo:

[País o región de origen:]

Cuando ejecute la consulta de parámetros, el parámetro aparecerá sin corchetes en un cuadro de diálogo.

  1. Repita el paso 2 por cada parámetro que la consulta debe recopilar y aplicar.

Puede seguir los pasos anteriores para crear una consulta de parámetros a partir de cualquiera de los siguientes tipos de consulta:

  • Selección
  • Tabla de referencias cruzadas
  • Datos anexados
  • Creación de tabla
  • Actualización

También puede agregar parámetros a una consulta de unión. Para ello:

  1. Abra la consulta de unión en la vista SQL.
  2. Agregue una cláusula WHERE que contenga cada uno de los campos para los que desee solicitar un parámetro.

Si ya existe una cláusula WHERE, compruebe si los campos para los que desee solicitar un parámetro ya están incluidos en la cláusula. En caso contrario, agréguelos.

  1. En vez de usar criterios en la cláusula WHERE, inserte indicadores de parámetro que tengan la misma sintaxis que los parámetros de otros tipos de consulta.

Hacer coincidir parte de un valor de campo con una cadena de parámetro

Quizás desee aplicar un poco de variabilidad en la forma en que la consulta aplica un parámetro. Por ejemplo, puede que desee que una consulta acepte una cadena de texto y la haga coincidir con parte de un campo. Para ello, use la palabra clave Como junto con caracteres comodín. Por ejemplo, desea que la consulta solicite un país o una región de origen y que el valor de campo pertinente contenga la cadena de parámetro. Para ello:

  1. Cree una consulta de selección y, a continuación, abra la consulta en la vista Diseño.
  2. En la fila Criterios del campo al que desee aplicar el parámetro, escriba Como "*"&[, escriba el texto que desee usar como indicador y, a continuación, escriba ]&"*".

Cuando ejecute la consulta de parámetros, la cadena aparecerá en el cuadro de diálogo sin corchetes y sin la palabra clave Como o los caracteres comodín.

  1. Cuando la consulta acepte el parámetro, coincidirá con los valores que contiene la cadena de parámetro. Por ejemplo, la cadena de parámetro us coincide con las filas donde el campo de parámetro tiene el valor Australia y filas donde el valor es Austria.

Puede usar asimismo la palabra clave Como y los caracteres comodín para especificar que un parámetro debe coincidir con el inicio o el final de un valor de campo. Para que coincida con el inicio de un valor de campo, omita las comillas, el carácter comodín y el carácter de y comercial (&) delante del corchete de apertura. Para que coincida con el final de un valor de campo, omita el carácter de y comercial, las comillas y el carácter comodín situados detrás del corchete de cierre.

Coincidencia basada en valores desiguales

Puede que desee que una consulta, en vez de devolver las filas con un valor coincidente, devuelva las filas para las que se cumplan también otras comparaciones. Por ejemplo, desea solicitar un año y desea que se devuelvan las filas en las que el valor de año es mayor que la cadena de parámetro. Para ello, escriba un operador de comparación a la izquierda del primer corchete del indicador de parámetro. Por ejemplo, >[Año:].

Volver al principio Volver al principio

Usar parámetros en informes

La manera más sencilla de crear un informe que acepte parámetros es usar una consulta de parámetros como origen de registros del informe. Por ejemplo, puede crear un informe de ingresos mensuales basado en una consulta de parámetros que solicite un valor para el mes. Cuando ejecute o imprima el informe, Access mostrará un cuadro de diálogo en el que se solicite el mes que el informe debe abarcar. Cuando especifique un mes, Access mostrará o imprimirá el informe apropiado.

También puede convertir fácilmente un informe sencillo basado en una consulta de selección en un informe con parámetros mediante la adición de parámetros a su consulta de origen. Hay dos formas de hacerlo:

  • Abra la consulta de origen en la vista Diseño y, a continuación, agregue parámetros a los campos que desee agregándolos a la fila Criterios de esos campos. Vea la sección Usar parámetros en consultas para obtener información más detallada.
  • Abra el informe en la vista Diseño y, a continuación, haga clic en ... junto a la propiedad Origen del registro del informe. De este modo, se abre la consulta de origen en la vista Diseño. A continuación, podrá agregar parámetros a la consulta de origen, de acuerdo con lo descrito en la sección Usar parámetros en consultas.

Cuando termine de agregar parámetros a la consulta de origen, guárdela (presionando CTRL+G) y, a continuación, ciérrela.

Volver al principio Volver al principio

Crear un formulario que recopile parámetros de informe

Si bien las consultas de parámetros tienen un cuadro de diálogo integrado que recopila los parámetros, sólo tienen una funcionalidad básica. Si usa un formulario para recopilar parámetros de informe, podrá disponer de las siguientes características:

  • Posibilidad de usar controles específicos del tipo de datos, como controles de calendario para las fechas
  • Persistencia de los parámetros recopilados
  • Posibilidad de proporcionar un cuadro combinado o cuadro de lista para la recopilación de parámetros, de modo que se puede elegir un valor en una lista de valores de datos disponibles
  • Posibilidad de proporcionar controles para otras funciones, como mostrar u ocultar secciones de un informe

Siga los pasos del 1 al 7 para crear un formulario que recopile parámetros de informe.

Paso 1: Cree un formulario independiente que solicite parámetros de informe

  1. En el grupo Formularios de la ficha Crear, haga clic en Diseño de formulario.
  1. En la vista Diseño, presione F4 para que aparezca la hoja de propiedades y, a continuación, configure las propiedades del formulario, tal y como se muestra en la siguiente tabla.
Propiedad Valor
Título Escriba el nombre que debe aparecer en la barra de título del formulario.
Vista predeterminada Formulario simple
Permitir vista Formulario
Permitir vista Hoja de datos No
Permitir vista TablaDinámica No
Permitir vista GráficoDinámico No
Barras de desplazamiento Ninguna
Selectores de registro No
Botones de desplazamiento No
Estilo de los bordes Diálogo
  1. Por cada parámetro que va a recopilar el formulario, haga clic en Cuadro de texto en el grupo Controles de la ficha Diseño.
  2. Configure las propiedades de los cuadros de texto, tal y como se muestra en la tabla siguiente.
Propiedad Valor
Nombre Escriba un nombre que describa el parámetro; por ejemplo, Fecha inicial.
Formato Elija un formato que refleje el tipo de datos del campo de parámetro. Por ejemplo, seleccione Fecha mediana para un campo de fecha.
  1. Guarde el formulario y asígnele un nombre; por ejemplo, Recolector de parámetros.

 Nota   En este ejercicio se usa Recolector de parámetros como nombre del formulario. A medida que siga estas instrucciones, reemplace el nombre asignado al formulario de parámetros del informe con el nombre Recolector de parámetros.

Paso 2: Cree un módulo que contenga una función que comprueba si ya se ha cargado un formulario

  1. En el grupo Otros de la ficha Crear, haga clic en Módulo. Si el comando no está disponible, haga clic en la flecha situada debajo del botón Macro o Módulo de clase y, a continuación, haga clic en Módulo.

Se abre un nuevo módulo en el Editor de Visual Basic.

  1. Escriba o pegue el siguiente código en el Editor de Visual Basic:
Function IsLoaded(ByVal strFormName As String) As Boolean

Dim oAccessObject As AccessObject
Set oAccessObject = CurrentProject.AllForms(strFormName)

If oAccessObject.IsLoaded Then
  If oAccessObject.CurrentView <> acCurViewDesign Then
    IsLoaded = True
  End If
End If

Paso 3: Cree un grupo de macros que controle el formulario Recolector de parámetros

  1. En el grupo Otros de la ficha Crear, haga clic en Macro. Si el comando no está disponible, haga clic en la flecha situada debajo del botón Módulo o Módulo de clase y, a continuación, haga clic en Macro.
  1. En el grupo Mostrar u ocultar de la ficha Diseño, haga clic en Mostrar todas las acciones.
  1. En el grupo Mostrar u ocultar de la ficha Diseño, haga clic en Nombres de macro para mostrar la columna Nombres de macro.
  1. Escriba un nombre de macro, como Cuadro de diálogo Abrir, en la columna Nombre de la macro.
  2. Haga clic en la celda de la columna Acción situada junto al nombre de la nueva macro, haga clic en la flecha desplegable y, a continuación, haga clic en AbrirFormulario.
  3. En la cuadrícula Argumentos de acción (situada debajo de la cuadrícula de diseño de la macro), configure los argumentos de acción (argumento de la acción: información adicional que requieren algunas acciones de macro, por ejemplo, el objeto al que afecta la acción o condiciones especiales en las que tiene lugar la acción.), tal y como se muestra en la siguiente tabla.
Argumento Valor
Nombre del formulario Escriba el nombre que asignó al formulario de parámetros de informe.
Vista Formulario
Modo de datos Modificar
Modo de la ventana Diálogo
  1. En la siguiente celda Acción, haga clic en CancelarEvento para agregar una segunda acción. Se usa esta acción para cancelar la vista previa o la impresión del informe cuando un usuario hace clic en el botón Cancelar del formulario.
  2. Si no ve la columna Condición, haga clic en Condiciones del grupo Mostrar u ocultar en la ficha Diseño.
  3. En la columna Condición, escriba Not IsLoaded, seguido de un paréntesis de apertura y unas comillas, el nombre asignado al formulario de parámetros de informe y, a continuación, unas comillas y un paréntesis de cierre. Por ejemplo, si el formulario se denomina Recolector de parámetros, escriba Not IsLoaded("Recolector de parámetros").
  4. En la siguiente fila en blanco de la cuadrícula de diseño de la macro, escriba un nombre de macro, como Cuadro de diálogo Cerrar.
  5. En la celda Acción adyacente, haga clic en la flecha desplegable y, a continuación, haga clic en Cerrar. El informe usa esta acción para cerrar el formulario de parámetros de informe. Configure los argumentos de la acción, tal y como se muestra en la siguiente tabla.
Argumento Valor
Tipo de objeto Formulario
Nombre del objeto Escriba el nombre que asignó al formulario de parámetros de informe.
Guardar No
  1. En la siguiente fila en blanco de la cuadrícula de diseño de la macro, escriba un nombre de macro, como Aceptar. En la celda Acción adyacente, haga clic en la flecha desplegable y, a continuación, haga clic en EstablecerValor. Se usa esta acción para ocultar el formulario de parámetros de informe cuando el usuario hace clic en Aceptar. Configure los argumentos de la acción, tal y como se muestra en la siguiente tabla.
Argumento Valor
Elemento [Visible]
Expresión No
  1. En la siguiente fila en blanco de la cuadrícula de diseño de la macro, escriba un nombre de macro, como Cancelar. En la celda Acción adyacente, haga clic en la flecha desplegable y, a continuación, haga clic en Cerrar. Se usa esta acción para cerrar el formulario de parámetros de informe cuando el usuario hace clic en Cancelar. Configure los argumentos de la acción, tal y como se muestra en la siguiente tabla.
Argumento Valor
Tipo de objeto Formulario
Nombre del objeto Escriba el nombre que asignó al formulario de parámetros de informe.
Guardar No
  1. Guarde y cierre el grupo de macros. Especifique un nombre para el grupo de macros; por ejemplo, Recolector de parámetros.

Paso 4: Agregue al formulario los botones de comando Aceptar y Cancelar.

  1. Vuelva a abrir el formulario Recolector de parámetros en la vista Diseño.
  2. Asegúrese de que no esté seleccionada la opción Utilizar asistentes para controles en el grupo Controles de la ficha Diseño.
  3. En el grupo Controles de la ficha Diseño, haga clic en Botón.
  1. Sitúe el puntero debajo de los cuadros de texto del formulario y, después, arrastre para crear un botón de comando Aceptar.
  2. Si no ve la hoja de propiedades, presione F4 para que aparezca.
  3. Configure las propiedades del botón Aceptar, tal y como se muestra en la tabla siguiente.
Propiedad Valor
Nombre Aceptar
Título Aceptar
Predeterminado
Al hacer clic Escriba el nombre de la macro; por ejemplo, Recolector de parámetros.Aceptar.
  1. Cree un botón de comando Cancelar y configure sus propiedades, tal y como se muestra en la tabla siguiente.
Propiedad Valor
Nombre Cancelar
Título Cancelar
Al hacer clic Escriba el nombre de la macro; por ejemplo, Recolector de parámetros.Cancelar.
  1. Guarde y cierre el formulario.

Paso 5: Introduzca los criterios en la consulta o el procedimiento almacenado subyacente del informe

  1. Abra la consulta o el procedimiento almacenado subyacente del informe en la vista Diseño.
  2. Especifique los criterios para los datos. En la expresión (expresión: cualquier combinación de operadores matemáticos o lógicos, constantes, funciones y nombres de campos, controles y propiedades que evalúa a un solo valor. Las expresiones pueden realizar cálculos, manipular caracteres o probar datos.), use el objeto Formularios, el nombre del formulario y los nombres de los controles (control: objeto de interfaz gráfica para el usuario, como un cuadro de texto, una casilla de verificación, una barra de desplazamiento o un botón de comando, que permite a los usuarios controlar el programa. Utilice los controles para mostrar datos y opciones, realizar una opción o facilitar la lectura de la interfaz.) en los criterios:
    • Por ejemplo, en una base de datos de Access (.accdb o .mdb), para un formulario denominado Recolector de parámetros, use la siguiente expresión para referirse a los controles denominados Fecha de inicio y Fecha de fin en la consulta:

Entre [Formularios]![Recolector de parámetros]![Fecha de inicio] Y [Formularios]![Recolector de parámetros]![Fecha de fin]

@Fecha_inicio fechayhora, @Fecha_fin fechayhora

A continuación, debe usar esos parámetros en la cláusula WHERE; por ejemplo:

WHERE Ventas.FechaEnvío Entre @Fecha_inicio Y @Fecha_fin

En un proyecto de Access, la referencia a los controles del formulario se establece en la propiedad ParámetrosEntrada del informe, tal y como se muestra en el siguiente procedimiento.

Paso 6: En un proyecto de Access, establezca la propiedad ParámetrosEntrada del informe principal.

  1. Abra el informe en la vista Diseño.
  2. Establezca la propiedad ParámetrosEntrada del informe en una cadena que especifique los parámetros que se pasan al procedimiento almacenado al que está enlazado el informe.

Al igual que en el ejemplo siguiente, la cadena debe ser una expresión que incluya los parámetros especificados en el procedimiento almacenado así como la referencia a los controles del cuadro de diálogo:

@Fecha_inicio fechayhora = [Formularios]![Recolector de parámetros]![Fecha de inicio], @Fecha_fin fechayhora = [Formularios]![Recolector de parámetros]![Fecha de fin]

Paso 7: Adjunte las macros al informe principal

  1. Abra el informe en la vista Diseño.
  2. Si no ve la hoja de propiedades, presione F4 para que aparezca.
  3. Configure las propiedades del informe, tal y como se muestra en la siguiente tabla.
Propiedad Valor
Al abrir Escriba el nombre de la macro que abra el formulario; por ejemplo, Recolector de parámetros.Cuadro de diálogo Abrir.
Al cerrar Escriba el nombre de la macro que cierre el formulario; por ejemplo, Recolector de parámetros.Cuadro de diálogo Cerrar.

    Volver al principio Volver al principio

     
     
    Corresponde a:
    Access 2007