Professional Documents
Culture Documents
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
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.
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.
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
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.
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.
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
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.
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.
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.
16. Guarde y cierre el grupo de macros. Especifique un nombre para el grupo de macros; por ejemplo, Recolector de parmetros.
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.
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.
@Fecha_inicio fechayhora = [Formularios]![Recolector de parmetros]![Fecha de inicio], @Fecha_fin fechayhora = [Formularios]![Recolector de parmetros]![Fecha de fin]