Está en la página 1de 11

Usar parmetros en consultas e informes

Las consultas son tiles para poder trabajar slo con los campos de una tabla que corresponden a una tarea determinada. Cuando se desea limitar an ms los datos con los que se va a trabajar, basndose en el valor de un campo, se pueden usar criterios en la consulta. Los criterios son reglas que se incluyen en el diseo 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 unaconsulta de parmetros. Tambin se pueden usar parmetros con un informe para que se pidan criterios cuando se ejecuta el informe. Se pueden usar formularios para que los parmetros de consulta e informe se puedan recopilar y pasar mejor de las siguientes maneras:

Permitiendo el uso de controles especficos del tipo de datos Habilitando la persistencia de los valores de parmetro 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 artculo se explica cmo usar los parmetros en consultas e informes, y cmo usar los formularios para mejorar el uso de los parmetros.

En este artculo

Introduccin Usar parmetros en consultas Usar parmetros en informes Crear un formulario que recopile parmetros de informe

Introduccin
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 catlogo. Cada vez que enva un pedido, incluye una copia del actual catlogo. Prev que los nuevos productos van a tener mucho xito y desea asegurarse de que todos los clientes los conocen. Desea enviar un nuevo catlogo a todos los clientes que an 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 catlogo. Para ello, aplica un criterio al campo de fecha de envo 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 distribucin del nuevo catlogo, 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 catlogo. Pero, qu sucede si vuelve a producirse esta situacin? Podra modificar el diseo de la consulta cambiando el valor especificado por el criterio pero, no sera 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 parmetro. Los parmetros tambin se pueden usar con los informes. Esto permite a los usuarios pasar al informe criterios cuando lo ejecutan. En este artculo, se muestra cmo usar Office Access 2007 para crear informes que acepten parmetros. Puede que los cuadros de dilogo proporcionados por una consulta de parmetros sean insuficientes para sus objetivos. En esos casos, puede crear un formulario que se ajuste mejor a sus necesidades de recopilacin de parmetros. En este artculo se muestra cmo crear un formulario que recopile parmetros de informe. En este artculo se supone que est familiarizado con la creacin de consultas e informes. Al menos deber saber cmo crear una consulta de seleccin antes de continuar. Para obtener ms informacin sobre la creacin de una consulta de seleccin o un informe, vea los artculos Crear una consulta de seleccin sencilla y Crear un informe sencillo. Este artculo incluye ejemplos de cmo usar parmetros en las consultas y los informes. Sin embargo, no incluye una referencia exhaustiva para especificar criterios. Para obtener ms informacin sobre cmo especificar criterios, vea el artculo Ejemplos de criterios de consulta.
VOLVER AL PRINCIPIO

Usar parmetros en consultas


Crear una consulta de parmetros es tan fcil como crear una consulta que usa criterios. Puede disear una consulta de modo que pida un solo dato, como un nmero de pieza, o varios datos, como dos fechas. Por cada parmetro, una consulta de parmetros muestra un cuadro de dilogo independiente en el que se solicita un valor para ese parmetro.

Crear una consulta de parmetros


1. Cree una consulta de seleccin y, a continuacin, abra la consulta en la vista Diseo. 2. En la fila Criterios del campo al que desee aplicar un parmetro, escriba entre corchetes el texto que debe aparecer en el cuadro de dilogo del parmetro; por ejemplo: [Pas o regin de origen:] Cuando ejecute la consulta de parmetros, el parmetro aparecer sin corchetes en un cuadro de dilogo. 3. Repita el paso 2 por cada parmetro que la consulta debe recopilar y aplicar. Puede seguir los pasos anteriores para crear una consulta de parmetros a partir de cualquiera de los siguientes tipos de consulta:

Seleccin Tabla de referencias cruzadas Datos anexados Creacin de tabla Actualizacin Tambin puede agregar parmetros a una consulta de unin. Para ello:

1. Abra la consulta de unin en la vista SQL. 2. Agregue una clusula WHERE que contenga cada uno de los campos para los que desee solicitar un parmetro. Si ya existe una clusula WHERE, compruebe si los campos para los que desee solicitar un parmetro ya estn incluidos en la clusula. En caso contrario, agrguelos. 3. En vez de usar criterios en la clusula WHERE, inserte indicadores de parmetro que tengan la misma sintaxis que los parmetros de otros tipos de consulta.

Hacer coincidir parte de un valor de campo con una cadena de parmetro


Quizs desee aplicar un poco de variabilidad en la forma en que la consulta aplica un parmetro. 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 comodn. Por ejemplo, desea que la consulta solicite un pas o una regin de origen y que el valor de campo pertinente contenga la cadena de parmetro. Para ello:

1. Cree una consulta de seleccin y, a continuacin, abra la consulta en la vista Diseo. 2. En la fila Criterios del campo al que desee aplicar el parmetro, escriba Como "*"&[, escriba el texto que desee usar como indicador y, a continuacin, escriba ]&"*". Cuando ejecute la consulta de parmetros, la cadena aparecer en el cuadro de dilogo sin corchetes y sin la palabra clave Como o los caracteres comodn. 3. Cuando la consulta acepte el parmetro, coincidir con los valores que contiene la cadena de parmetro. Por ejemplo, la cadena de parmetro us coincide con las filas donde el campo de parmetro tiene el valor Australia y filas donde el valor es Austria. Puede usar asimismo la palabra clave Como y los caracteres comodn para especificar que un parmetro 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 carcter comodn y el carcter de y comercial (&) delante del corchete de apertura. Para que coincida con el final de un valor de campo, omita el carcter de y comercial, las comillas y el carcter comodn situados detrs 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 tambin otras comparaciones. Por ejemplo, desea solicitar un ao y desea que se devuelvan las filas en las que el valor de ao es mayor que la cadena de parmetro. Para ello, escriba un operador de comparacin a la izquierda del primer corchete del indicador de parmetro. Por ejemplo, >[Ao:].
VOLVER AL PRINCIPIO

Usar parmetros en informes


La manera ms sencilla de crear un informe que acepte parmetros es usar una consulta de parmetros como origen de registros del informe. Por ejemplo, puede crear un informe de ingresos mensuales basado en una consulta de parmetros que solicite un valor para el mes. Cuando ejecute o imprima el informe, Access mostrar un cuadro de dilogo en el que se solicite el mes que el informe debe abarcar. Cuando especifique un mes, Access mostrar o imprimir el informe apropiado. Tambin puede convertir fcilmente un informe sencillo basado en una consulta de seleccin en un informe con parmetros mediante la adicin de parmetros a su consulta de origen. Hay dos formas de hacerlo:

Abra la consulta de origen en la vista Diseo y, a continuacin, agregue parmetros a los campos que desee agregndolos a la fila Criterios de esos campos. Vea la seccin Usar parmetros en consultas para obtener informacin ms detallada. Abra el informe en la vista Diseo y, a continuacin, haga clic en ... junto a la propiedad Origen del registrodel informe. De este modo, se abre la consulta de origen en la vista Diseo. A continuacin, podr agregar parmetros a la consulta de origen, de acuerdo con lo descrito en la seccin Usar parmetros en consultas. Cuando termine de agregar parmetros a la consulta de origen, gurdela (presionando CTRL+G) y, a continuacin, cirrela.
VOLVER AL PRINCIPIO

Crear un formulario que recopile parmetros de informe


Si bien las consultas de parmetros tienen un cuadro de dilogo integrado que recopila los parmetros, slo tienen una funcionalidad bsica. Si usa un formulario para recopilar parmetros de informe, podr disponer de las siguientes caractersticas:

Posibilidad de usar controles especficos del tipo de datos, como controles de calendario para las fechas Persistencia de los parmetros recopilados Posibilidad de proporcionar un cuadro combinado o cuadro de lista para la recopilacin de parmetros, 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 parmetros de informe.

Paso 1: Cree un formulario independiente que solicite parmetros de informe


1. En el grupo Formularios de la ficha Crear, haga clic en Diseo de formulario. 2. En la vista Diseo, presione F4 para que aparezca la hoja de propiedades y, a continuacin, configure las propiedades del formulario, tal y como se muestra en la siguiente tabla.

PROPIEDAD Ttulo Vista predeterminada Permitir vista Formulario

VALOR Escriba el nombre que debe aparecer en la barra de ttulo del formulario. Formulario simple S

Permitir vista Hoja de datos Permitir vista TablaDinmica Permitir vista GrficoDinmico Barras de desplazamiento Selectores de registro Botones de desplazamiento Estilo de los bordes
grupo Controles de la ficha Diseo.

No No No Ninguna No No Dilogo

3. Por cada parmetro que va a recopilar el formulario, haga clic en Cuadro de texto en el 4. Configure las propiedades de los cuadros de texto, tal y como se muestra en la tabla siguiente.

PROPIEDAD VALOR Escriba un nombre que describa el parmetro; por Nombre ejemplo, Fecha inicial. Formato Elija un formato que refleje el tipo de datos del campo de parmetro. Por ejemplo, seleccioneFecha mediana para un campo de fecha.

6. Guarde el formulario y asgnele un nombre; por ejemplo, Recolector de parmetros.


NOTA En este ejercicio se usa Recolector de parmetros como nombre del formulario. A

medida que siga estas instrucciones, reemplace el nombre asignado al formulario de parmetros del informe con el nombre Recolector de parmetros.

Paso 2: Cree un mdulo que contenga una funcin que comprueba si ya se ha cargado un formulario

1. En el grupo Otros de la ficha Crear, haga clic en Mdulo. Si el comando no est disponible, haga clic en la flecha situada debajo del botn Macro o Mdulo de clase y, a continuacin, haga clic en Mdulo. Se abre un nuevo mdulo en el Editor de Visual Basic. 2. Escriba o pegue el siguiente cdigo 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 parmetros


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 botn Mdulo o Mdulo de clase y, a continuacin, haga clic en Macro. 2. En el grupo Mostrar u ocultar de la ficha Diseo, haga clic en Mostrar todas las acciones. 3. En el grupo Mostrar u ocultar de la ficha Diseo, haga clic en Nombres de macro para mostrar la columna Nombres de macro. 4. Escriba un nombre de macro, como Cuadro de dilogo Abrir, en la columna Nombre de la macro. 5. Haga clic en la celda de la columna Accin situada junto al nombre de la nueva macro, haga clic en la flecha desplegable y, a continuacin, haga clic en AbrirFormulario. 6. En la cuadrcula Argumentos de accin (situada debajo de la cuadrcula de diseo de la macro), configure losargumentos de accin, tal y como se muestra en la siguiente tabla.

ARGUMENTO Nombre del formulario Vista

VALOR Escriba el nombre que asign al formulario de parmetros de informe. Formulario

Modo de datos Modo de la ventana


en el botnCancelar del formulario.

Modificar Dilogo

7. En la siguiente celda Accin, haga clic en CancelarEvento para agregar una segunda accin. Se usa esta accin para cancelar la vista previa o la impresin del informe cuando un usuario hace clic 8. Si no ve la columna Condicin, haga clic en Condiciones del grupo Mostrar u ocultar en la ficha Diseo. 9. En la columna Condicin, escriba Not IsLoaded, seguido de un parntesis de apertura y unas comillas, el nombre asignado al formulario de parmetros de informe y, a continuacin, unas comillas y un parntesis de cierre. Por ejemplo, si el formulario se denomina Recolector de parmetros, escriba Not IsLoaded("Recolector de parmetros"). 10. En la siguiente fila en blanco de la cuadrcula de diseo de la macro, escriba un nombre de macro, comoCuadro de dilogo Cerrar. 11. En la celda Accin adyacente, haga clic en la flecha desplegable y, a continuacin, haga clic en Cerrar. El informe usa esta accin para cerrar el formulario de parmetros de informe. Configure los argumentos de la accin, tal y como se muestra en la siguiente tabla.

ARGUMENTO Tipo de objeto Nombre del objeto Guardar

VALOR Formulario Escriba el nombre que asign al formulario de parmetros de informe. No

13. En la siguiente fila en blanco de la cuadrcula de diseo de la macro, escriba un nombre de macro, comoAceptar. En la celda Accin adyacente, haga clic en la flecha desplegable y, a continuacin, haga clic enEstablecerValor. Se usa esta accin para ocultar el formulario de parmetros de informe cuando el usuario hace clic en Aceptar. Configure los argumentos de la accin, tal y como se muestra en la siguiente tabla.

ARGUMENTO Elemento Expresin

VALOR [Visible] No

15. En la siguiente fila en blanco de la cuadrcula de diseo de la macro, escriba un nombre de macro, comoCancelar. En la celda Accin adyacente, haga clic en la flecha desplegable y, a continuacin,

haga clic enCerrar. Se usa esta accin para cerrar el formulario de parmetros de informe cuando el usuario hace clic enCancelar. Configure los argumentos de la accin, tal y como se muestra en la siguiente tabla.

ARGUMENTO Tipo de objeto Nombre del objeto Guardar

VALOR Formulario Escriba el nombre que asign al formulario de parmetros de informe. No

16. Guarde y cierre el grupo de macros. Especifique un nombre para el grupo de macros; por ejemplo, Recolector de parmetros.

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


1. Vuelva a abrir el formulario Recolector de parmetros en la vista Diseo. 2. Asegrese de que no est seleccionada la opcin Utilizar asistentes para controles en el grupo Controlesde la ficha Diseo. 3. En el grupo Controles de la ficha Diseo, haga clic en Botn. 4. Site el puntero debajo de los cuadros de texto del formulario y, despus, arrastre para crear un botn de comando Aceptar. 5. Si no ve la hoja de propiedades, presione F4 para que aparezca. 6. Configure las propiedades del botn Aceptar, tal y como se muestra en la tabla siguiente.

PROPIEDAD Nombre Ttulo Al hacer clic

VALOR Aceptar Aceptar Escriba el nombre de la macro; por ejemplo, Recolector de parmetros.Aceptar.

Predeterminado S

7. Cree un botn de comando Cancelar y configure sus propiedades, tal y como se muestra en la tabla siguiente.

PROPIEDAD VALOR Nombre Cancelar

Ttulo Al hacer clic

Cancelar Escriba el nombre de la macro; por ejemplo, Recolector de parmetros.Cancelar.

9. 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 Diseo. 2. Especifique los criterios para los datos. En la expresin, use el objeto Formularios, el nombre del formulario y los nombres de los controles en los criterios:

Por ejemplo, en una base de datos de Access (.accdb o .mdb), para un formulario denominado Recolector de parmetros, use la siguiente expresin para referirse a los controles denominados Fecha de inicio y Fecha de fin en la consulta: Entre [Formularios]![Recolector de parmetros]![Fecha de inicio] Y [Formularios]![Recolector de parmetros]![Fecha de fin]

En un proyecto de Access (.adp), primero debe asignar un nombre explcito a los parmetros del procedimiento almacenado; por ejemplo: @Fecha_inicio fechayhora, @Fecha_fin fechayhora A continuacin, debe usar esos parmetros en la clusula WHERE; por ejemplo: WHERE Ventas.FechaEnvo Entre @Fecha_inicio Y @Fecha_fin En un proyecto de Access, la referencia a los controles del formulario se establece en la propiedadParmetrosEntrada del informe, tal y como se muestra en el siguiente procedimiento.

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


1. Abra el informe en la vista Diseo. 2. Establezca la propiedad ParmetrosEntrada del informe en una cadena que especifique los parmetros que se pasan al procedimiento almacenado al que est enlazado el informe. Al igual que en el ejemplo siguiente, la cadena debe ser una expresin que incluya los parmetros especificados en el procedimiento almacenado as como la referencia a los controles del cuadro de dilogo:

@Fecha_inicio fechayhora = [Formularios]![Recolector de parmetros]![Fecha de inicio], @Fecha_fin fechayhora = [Formularios]![Recolector de parmetros]![Fecha de fin]

Paso 7: Adjunte las macros al informe principal


1. Abra el informe en la vista Diseo. 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.