Access - Fecha en Query y Report

 
Vista:
Imágen de perfil de Osen
Val: 50
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Fecha en Query y Report

Publicado por Osen (72 intervenciones) el 15/07/2022 02:51:02
Amigos de Access.

Otra ayuda, por favor:
Tengo una Query entre fechas, que va a impresión, a través de un Report.
El el Report Footer está la fecha actual =(Now()), pero no es suficiente. Necesito la fecha del rango de la consulta.

Ejemplo: Hoy es 14 de Julio 2022, pero necesito el informe impreso (Report) del 1 de Julio 2022. Necesito que salga esa fecha.

Como "una imagen vale más que mil palabras", anexo la imagen

Muchas gracias



Consulta-Foros-Fecha-de-Consulta-14-julio-2022
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Fecha en Query y Report

Publicado por Anonimo (3316 intervenciones) el 15/07/2022 09:00:12
Between funciona de forma correcta si los datos con los que trabaja son numéricos, con las fechas (y sobre todo con las que no están en formato americano) los resultados no siempre son los esperados.

La solución es sencilla, DUPLICAR el campo de fecha y bajo uno como condición: que sea igual o mayor a la fecha de inicio, bajo el otro (que es un duplicado del mismo dato): que sea igual o inferior a la fecha final.

Todas las condiciones que estén en la misma línea, serán interpretadas como AND y las que estén en líneas diferentes como OR.

Utilizar como referente la fecha actual puede dar resultados diferentes si se utiliza NOW() (que tiene parte horaria) a cuando se utiliza DATE() (que no tiene parte horaria).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Osen
Val: 50
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Fecha en Query y Report

Publicado por Osen (72 intervenciones) el 19/07/2022 21:13:57
Anonimo, buenas tardes.
Discúlpame, pero tengo que hacer una aclaración o rectificación.
Primero: el =(Now()) está en el Report Footer como fecha de impresión, NO en el Query.

El Query debe enviar al Report el rango de fecha consultada, para que el Report lo capture y aparezca en la impresión..

Ahora está así:

SELECT DISTINCTROW PagadoCon.PagadoConETT, Sum(PagadoCon.CantidadPagada) AS [Sum Of CantidadPagada]
FROM PagadoCon
WHERE (((PagadoCon.FechaDelPago) Between [Desde] And [Hasta]))
GROUP BY PagadoCon.PagadoConETT;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fecha en Query y Report

Publicado por Anonimo (3316 intervenciones) el 19/07/2022 23:20:48
En principio considero que para el saldo diario utilizar Between es redundante, un único dato de fecha es suficiente.

En el caso de utilizar un rango habrá que añadir el campo de fecha para agrupar por el, si se le añade, ya estará disponible la fecha como un dato mas.
Eso si: será la misma fecha para todos los subconjuntos (uno por día) pero se puede ocultar y utilizar como cabecera de grupo en el informe (sigue siendo valido el mismo código en el caso de que el rango sea de un solo día),

Lo mas clásico es utilizar un formulario para solicitar el rango de fechas, obtenidas estas, desde el mismo formulario se ejecuta el informe.

En este caso, la consulta origen de datos para el informe en lugar de 'Desde <__> Hasta' se hará referencia a los datos de fecha que se introdujeron en el formulario y a ese mismo formulario se puede hacer referencia en el informe para obtener las fechas (obtenidas estos datos, desde el propio informe se puede cerrar el formulario).

Si en la tabla las fechas tienen parte horaria, en la consulta aconsejo utilizar INT(FechaDelPago) o añadir un día a la fecha final.

Utilizar un formulario para obtener los datos de fecha, permite hacer verificaciones (si son correctas las fechas, si existen datos en el intervalo si ....) además de tener los datos inicial y final que se introdujeron, datos que no hay garantía de que coincidan con la fecha mínima y máxima del conjunto obtenido (pueden faltar datos de un día solicitado y no laborable).

Se dispone de dos opciones para obtener las fechas (y seguro que habrá mas), una que se añada como un dato mas en la consulta (si no se desea agrupar ==> la mínima / máxima del conjunto), la otra que se utilice un formulario:
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Osen
Val: 50
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Fecha en Query y Report

Publicado por Osen (72 intervenciones) el 20/07/2022 19:01:43
Hola Anónimo

Después de desbaratar, armar, desbaratar, armar a ciegas........ todo apunta a que la solución es la siguiente:

PARAMETERS [Fecha desde] DateTime, [Fecha hasta] DateTime;
SELECT CampoFecha, PagadoCon.PagadoConETT, Sum(PagadoCon.CantidadPagada) AS [Sum Of CantidadPagada]
FROM PagadoCon
WHERE CampoFecha Between [Fecha desde] And [Fecha hasta]
GROUP BY PagadoCon.PagadoConETT;

Lamentablemente hay que adicionar un paso. Antes eran 2 y ahora son 3
Desde - Hasta - CampoFecha.

Alguna sugerencia..... corrección....?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fecha en Query y Report

Publicado por Anonimo (3316 intervenciones) el 20/07/2022 20:52:38
La ventaja de parametrizar la consulta, es que Access validara el dato en función del tipo de dato que se le declare (de entrada es una mejora).

Lo de la cuenta de pasos me despista un poco.
Si se hace referencia a que ahora devuelve un dato mas (la fecha) no creo que ello suponga merma de velocidad (ni trabajando en una intranet) y si 'corre igual' es que el peso no le afecta.

Me llama la atención lo de 'resumen DIARIO', si el resumen es de un solo día (sea el actual o uno anterior) ¿porqué se utiliza un intervalo?, con solicitar una fecha (la de el día que nos interese y que se puede verificar que hay datos para mostrar antes de ejecutar la consulta) seria suficiente:

.- Se agrupa por tipo de campo
.- Se filtra por el día (no un intervalo)
.- Se obtiene un total por tipo de pago, una fecha (la que se le solicito) y un total para ese subconjunto.

Como se presentara en un informe, se puede reubicar el dato y los dato comunes en la cabecera de grupo (o del informe) y no mostrarlos mas.

Si se admite una sugerencia, experimente un poco con el formulario, hay mas posibilidades de evitar un uso poco adecuado (los usuarios suelen ser bastante problemáticos y siempre ... localizan el hueco).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar