He creado un informe en el que muestra una serie de registros en los que uno de los campos es una fecha en formato español "DD/MM/AAAA". Creé dos parámetros de tipo DateTime (Fecha_Ini y Fecha_Fin) para filtrar los registros en un rango de fechas. Por defecto ese rango debería ser de los últimos 15 días.
He trabajado con las funciones de fecha DateDiff, CDate, etc. y no me han dado problema. El problema ha surgido cuando ejecutaba el informe desde un Explorador Web a través del servidor de informes, pues hacía cosas raras con las fechas.
Para simplificar el problema asigné los valores por defecto de los parámetros a mano de la siguiente manera CDate("2008-12-01") y CDate("2008-12-16") y el explorador me muestra el siguiente error:
Error durante el procesamiento del parámetro de informe ‘Fecha_fin’. (rsReportParameterProcessingError)Cambiando los formatos probé con: CDate("2008-01-12") y CDate("2008-16-12") y no sale ningún error, pero la primera fecha la coge como "12 de Enero" y la segunda no la encuentra (sale diciembre pero no marca ningún día) .
Por si acaso, probé usando la función Today() en lugar de CDate("2008-12-16") y ocurre lo mismo que en el segundo caso, no encuentra la fecha, poniendo el filtro en diciembre pero sin ningún día marcado.
Logré hacerlo funcionar bien utilizando fechas válidas en los dos formatos (AAAA-MM-DD y AAAA-DD-MM) pero en aquellas fechas en las que en alguno de los dos formatos sería errónea, no funciona, por lo que resulta imposible asignarle por defecto los días de cada mes superiores al 12.
Personalmente creo que internamente el servidor está validando la fecha según el formato AAAA-DD-MM, pero al pasársela al Explorador, este la interpreta como formato AAAA-MM-DD . De este modo, en el primer formato pasa la validación pero no es correcta para el Explorador, y en el segundo formato no pasa la validación.
No sé si estoy en lo cierto o no, pero en cualquier caso no sé cual puede ser la solución al problema. Si alguien pudiera echar un pcoo de luz sobre este asunto se lo agradecería.
Un saludo y perdón por el tostón.