Access - Contar cada cambio de fecha

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

Contar cada cambio de fecha

Publicado por Lizardo (9 intervenciones) el 23/12/2022 16:54:44
Buen día:
Tengo una lista de gestiones realizadas. Ocasionalmente, las tareas se realizan los días feriados y esos tienen un cronograma de pago especial en el sueldo.
¿Hay alguna forma de poder contar 1 con cada cambio de fecha?
Es decir:
Si la lista arroja:
01/01/2022
01/01/2022
02/01/2022

El resultado sea 2 (por el 01 y el 02 de enero, más allá que haya más).
hay un ROWSOURCE que obtiene todos los registros coincidentes con diferentes criterios (fechas, número de indicente, empleado, tipo de caso, etc.) y el ser feriado es uno de ellos.
Necesito que en el resultado se tenga en cuenta esos otros criterios para saber cuántos feriados abarcan (entre X e Y fechas, del empleado Z, por ejemplo).
No encuentro la forma. El resultado del recuento irá en la etiqueta de la casiia "Feriado".

Captura-de-pantalla_20221223_125313
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

Contar cada cambio de fecha

Publicado por Anonimo (3316 intervenciones) el 23/12/2022 17:18:49
Si los días no laborables tienen un valor añadido, lo correcto seria crear un calendario con ellos y (en función de la coincidencia de fechas) añadir los extras.

El calendario es fácil de crear, de entrada uno o dos días a la semana (sábados + domingos) a los que se añaden las fiestas nacionales y locales según sea la costumbre del gremio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Lizardo
Val: 11
Ha disminuido su posición en 16 puestos en Access (en relación al último mes)
Gráfica de Access

Contar cada cambio de fecha

Publicado por Lizardo (9 intervenciones) el 23/12/2022 18:00:26
No entendí de dónde salió tanta complicación.
Obtengo un rango de fechas y necesito contar cada valor único correspondiente a cada fecha. Los días están marcados como feriados en los días feriados.
Si se quiere de otro modo, contar cada cambio de fecha con cierto/s criterio/s de filtrado.
¿Más simple? Contar cantidad de días únicos.
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 Lizardo
Val: 11
Ha disminuido su posición en 16 puestos en Access (en relación al último mes)
Gráfica de Access

Contar cada cambio de fecha

Publicado por Lizardo (9 intervenciones) el 23/12/2022 18:53:35
Me compliqué yo añadiendo datos que no son realmente relevantes para lo que necesito.
A ver: necesito contar cuántos días diferentes hay en el resultado de una consulta (los criterios los añadiré).
El tema es que no sé cómo armar el código para obtener ese resultado. Eso es lo que necesito.
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

Contar cada cambio de fecha

Publicado por Anonimo (3316 intervenciones) el 23/12/2022 20:43:53
Si se desea contar el mismo dato la misma fecha (dato puede ser el operario), se puede utilizar una consulta de datos agrupados, se agrupa por fecha y se cuentan los coincidentes.

Me arriesgare a una propuesta para el caso, supondré que se desea agrupar por operario y fecha:

1
SELECT Operario, Fecha, Count(fecha) AS CuentaDeFecha FROM [aquí la tabla/consulta] GROUP BY Operario, Fecha;

Para ver como esta creada, sustituir los campos por los correctos y añadir la tabla

Tras ello se genera una consulta nueva, NO se selecciona ninguna tabla y deberá aparecer un icono con el texto 'vista SQL' click en el y en la ventana que se abre se sobrescribe el texto que hay con el anterior ya corregido con datos reales (la SQL).

Al ejecutar la consulta deberá aparecer un listado de registros únicos con operario + día + [suma de dias].
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Lizardo
Val: 11
Ha disminuido su posición en 16 puestos en Access (en relación al último mes)
Gráfica de Access

Contar cada cambio de fecha

Publicado por Lizardo (9 intervenciones) el 24/12/2022 06:36:03
Creo que no lo puedo aplicar correctamente por la forma en que obtengo y muestro los datos.
Cargo en un cuadro de lista mediante lo siguiente:
1
.RowSource = "SELECT ID, FECHA, FERIADO, [----]* FROM tabGestion WHERE (" & miFiltro & ") ORDER BY ID DESC;"
* [----] Es una cantidad adicional de campos que no vienen al caso.
miFiltro contiene los criterios seleccionados para filtrar los registros.
Y de esos resultados necesito que me cuente los días cuyo campo FERIADO es True. Si no hay filtro aplicado, serán todos los feriados de la tabla. Si hay filtros, los feriados de los resultados.
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 Lizardo
Val: 11
Ha disminuido su posición en 16 puestos en Access (en relación al último mes)
Gráfica de Access

Contar cada cambio de fecha

Publicado por Lizardo (9 intervenciones) el 24/12/2022 07:25:38
Después de darle muchas vueltas, encontré la solución:
1
2
3
4
5
6
7
8
If Len(miFiltro) > 0 Then
      Set vDAO = CurrentDb.OpenRecordset("SELECT FECHA FROM (SELECT DISTINCT FECHA, FERIADO FROM tabGestion WHERE " & miFiltro & ") GROUP BY FECHA;")
    Else
      Set vDAO = CurrentDb.OpenRecordset("SELECT FECHA FROM (SELECT DISTINCT FECHA, FERIADO FROM tabGestion) GROUP BY FECHA;")
    End If
      Me.ET_FERIADO.Caption = "Feriados (" & vDAO.RecordCount & " días)"
      vDAO.Close
  Set vDAO = Nothing
Si ves algo que permita pulir un poco el código, por favor, no dejes de decirlo.
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

Contar cada cambio de fecha

Publicado por Anonimo (3316 intervenciones) el 24/12/2022 08:53:50
Si los días 'feriados' están marcados como tales, contarlos es sencillo (y contar los 'no feriados' también en base a esa misma marca).

Un filtro puede ser inclusivo o exclusivo y contar los que estén marcados como feriados o los que NO estén marcados como feriados, el filtro (basado en el campo feriado) es exactamente el mismo.

Si se tiene una consulta que devuelve un conjunto de datos, se dispone de un 'dominio' y hay funciones de dominio que permiten obtener datos como la cuenta, suma ... en un solo paso.

Pero al final solo el que dispone de los datos puede manejarlos para obtener lo que necesita, desde 'afuera' y sin conocer el entorno solo se pueden hacer cábalas cuando la información escasea.
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