Filtros fechas por form

Tengo un formulario en el que indico 2 fechas (fecha 1) y (fecha2), quiero que en un informe recoja estas variables en el campo Cabecerapedidos_fechapedido para que filtre entre esas 2 fechas. En procedimiento de evento al abrir informe tengo la siguiente instrucción a) DoCmd.OpenReport "Pedidos selección", acViewPreview,, "format(Cabecerapedidos_Fechapedido,'dd/mm/yyyy) between format(Form![formulario1].[Fecha1]'dd/mm/yyyy) And format(Form![formulario1].[Fecha2],'dd/mm/yyyy) & " * "", pero da el siguiente error (SE HA PRODUCIDO EL ERROR '13' EN TIEMPO DE EJECUCIÓN: NO COINCIDEN LOS TIPOS. ¿Qué estoy haciendo mal?

1 respuesta

Respuesta
1
¿Por qué no tomas el valor de tus fechas en el evento 'al abrir informe' y lo metes en una variable?. Para mí es mucho más dinámico trabajar con variables en VBA.
Define tu variable luego de Option Explicit
Dim fecha_ini
Dim fecha_fin
fecha_ini = format(forms!formulario!CampoFecha_ini, "dd/mm/yyyy")
fecha_fin = format(forms!formulario!CampoFecha_fin, "dd/mm/yyyy")
---
El error también te da por el motivo que es una condición WHERE por lo tanto debería ser el campo Fecha de tu tabla o tu consulta base del informe el que debe estar condicionado y no un campo de tu informe, ya que probablemente no recoja aun el valor de la fecha al levantar la consulta, también el '*' que aparece en tu criterio podría generar inconveniente, al igual que el Beetwen. Entonces debería ser:
DoCmd.OpenReport "TU_INFORME", acViewPreview, , "[CampoFechaEnConsultaBase] >=Forms!Formulario!Fecha_ini AND [CampoFechaEnConsultaBase]<=Forms!Formulario!Fecha_fin", acWindowNormal
Si por ahí quieres que aparezca algunos valores introducidos, esto te servirá:
Reports!NOMBRE_DE_TU_REPORTE.Caption = "Desde: " & Forms!Formulario!Fecha_ini & " - " & "Hasta: " & Forms!Formulario!Fecha_fin
Reports!NOMBRE_DE_TU_REPORTE!txtInicio = Forms!Formulario!Fecha_ini
Reports!NOMBRE_DE_TU_REPORTE!txtFin = Forms!Formulario!Fecha_fin
DoCmd.OpenReport "TU_INFORME", acViewPreview, , "[CampoFechaEnConsultaBase] >=Forms!Formulario!Fecha_ini AND [CampoFechaEnConsultaBase]<=Forms!Formulario!Fecha_fin", acWindowNormal
FUNCIONA PERFECTAMENTE. Muchas gracias.
Sólo me falta saber que hay que incluir por si no se rellenan los campos de fecha que coja todos los registros.
Reports!NOMBRE_DE_TU_REPORTE.Caption = "Desde: " & Forms!Formulario!Fecha_ini & " - " & "Hasta: " & Forms!Formulario!Fecha_fin
Reports!NOMBRE_DE_TU_REPORTE!txtInicio = Forms!Formulario!Fecha_ini
Reports!NOMBRE_DE_TU_REPORTE!txtFin = Forms!Formulario!Fecha_fin
Esta segunda parte a que te refieres con NOMBRE_DE_TU_REPORTE?
Muchas gracias por tu rápida respuesta, para que coja todos los registros estoy probando con Siinm, if e iif. Sino lo consigo volveré a consultarte. Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas