Informes entre un rango de fechas

Utilizo Access 2002. Tengo varios informes en que la información se basa en un rango de fechas.
Además tengo creado un formulario (dialogo) en el que solicito este rango de fechas (Desde / Hasta).
Quisiera saber como desde los informes puedo llamar a este formulario para que utilice la información contenida entre las fechas introducidas. Estas fechas además, las quisiera poder utilizar en la cabecera de los listados indicando:
        Periodo->  de: dd/mm/aaaa  a:  dd/mm/aaaa 
Hasta ahora he utilizado una consulta que filtra estos datos y en las fechas he utilizado la opción "Entre---Y---" en los criterios, pero me gustaría hacerlo de la forma que he indicado en el principio.
¿Es posible?

1 respuesta

Respuesta
1
1. En cuanto a lo primero, crea dos textbox en tu informe y coloca como origen de datos lo siguiente:
=Formularios!Nombre_Formulario_dialogo!Nombre_campo (puede ser fecha_inicio o fecha_desde)
y en el otro de la misma manera pero cambiando el nombre
=Formularios!Nombre_Formulario_dialogo!Nombre_campo (puede ser fecha_fin o fecha_hasta)
2. En tu consulta debes poner como criterio para obtener tu informe:
"Entre Formularios!Nombre_Formulario_dialogo!fecha_inicio Y Formularios!Nombre_Formulario_dialogo!fecha_fin"
3. Y en el evento click de tu formulario_diálogo vas a llamar al informe pudiendo establecer validaciones para que las fechas no sean nulas y que muestre un msgbox cada vez que ello sucede, pero dependería del nivel de programación que le quieras dar a tu informe:
If IsNull(Forms![Nombre_formulario_dialogo]!fecha_inicio) Or  IsNull(Forms![Nombre_formulario_dialogo]!fecha_fin) Then
                MsgBox "Fecha incorrecta!", vbCritical, "Error"
else
DoCmd.OpenReport "informe_entre_fechas", ModoImpresión, ""
End if
Hola, gracias por la respuesta,
Lo he estado probando, pero me da error, te explico:
He puesto lo siguiente,
Informe:
Creado 2 cuadros de texto, en origen de datos lo siguiente:
1er. cuadro: =[Formularios]![FRM PERIODO]![FechaDesde]
2º cuadro: =[Formularios]![FRM PERIODO]![FechaHasta]
Consulta:
En "criterios" del campo que debe filtrar los datos:
Entre [Formularios]![frm periodo]![FechaDesde] Y [Formularios]![frm periodo]![FechaHasta]
Formulario:
En el formulario dialogo de fechas, en el evento click, he puesto (lo he probado 2 veces):
La 1ª vez (como me habéis indicado):
Private Sub cmdAceptar_Click()
If IsNull(Forms![FRM PERIODO]!FechaDesde) Or IsNull(Forms![FRM PERIODO]!FechaHasta) Then
MsgBox "Fecha incorrecta!!", vbCritical, "Error"
Else
DoCmd.OpenReport "LST ALTAS", acViewNormal, ""
End If
End Sub
la 2ª vez (para hacerlo más simple):
Private Sub cmdAceptar_Click()
DoCmd.OpenReport "LST ALTAS", acViewNormal
End Sub
?
En ambos casos me da el siguiente error:
La expresión Al hacer clic que introdujo como valor de la propiedad de evento produjo un error: El objeto o la clase no admite el conjunto de eventos
¿Me podríais decir donde está el error?
También veo que así esta forma solo sirve para un listado, pero cuando hay bastantes (hasta 15) que se basan en fechas, como se podría hacer ¿poniendo un combobox con todos los nombres de los listados y seleccionarlo en el mismo cuadro de diálogo de las fechas?
Quedo a la espera de vuestra respuesta. Gracias
lft580
Verifica el listado de tus librerías en /Herramienta/Referencias. Que estén marcadas las versiones más elevadas, igualmente puede que estés utilizando otro componente que no hayas seleccionado. Yo tengo en mi bd de pruebas las siguientes y no me da error:
- VisualBasic for Applications
- Microsoft Access 11.0 Object Library
- Ole Automation
- Microsoft DAO 3.6 Object Library
- Microsoft ActiveX Data Objects 2.1 Library
En cuanto a la cantidad de informes sobre fechas, puedes utilizar un cuadro combinado con el nombre de todos tus informes con 2 textbox independientes en los cuales pones las fechas así como lo dices, también utilizar un marco y dentro del marco botones de opción.
Para no colocar en tu consulta puedes utilizar lo siguiente:
DoCmd.OpenReport "Prueba", ModoImpresión, "", "Fecha_inicio=Forms!Dialogo!FechaDesde And Fecha_fin=Forms!Dialogo!FechaHasta"
He revisado las librerías y efectivamente me faltaba una, una vez actualizado, he realizado lo que indicas:
1.- He eliminado de la consulta la entrada de fechas
2.- Y además he incorporado un combobox con los nombre de los listados (incluidos en una tabla)
3.- En el botón "Aceptar" del formulario, he incluido:
 DoCmd.OpenReport "Prueba", ModoImpresión, "", "Fecha_inicio=Forms!Dialogo!FechaDesde And Fecha_fin=Forms!Dialogo!FechaHasta"
Y funciona bien.
Lo único que veo es que cuando finaliza la impresión del listado, vuelve al formulario que solicita las fechas y el listado, pero no limpia los datos indicados anteriormente, pero bueno eso es lo menos importante.
Muchas gracias por vuestra ayuda.
lft580

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas