Access - Asignar valor por dia en intervalo entre fechas

 
Vista:
sin imagen de perfil

Asignar valor por dia en intervalo entre fechas

Publicado por omar (2 intervenciones) el 13/02/2023 18:27:43
Buen dia comunidad, les agradezco de antemano la orientacion que puedan sugerirme para la resolucion de mi requerimiento...
El problema radica en que contando con tres datos de inicio (un valor numerico y dos fechas), pueda graficar el valor sumado ya sea por dia o preferentemente semana.
Pense en algo parecido a lo mostrado en el dibujo pero no logro entender como encarar el problema de desglosar por dia el intervalo entre fechas y asignar a cada uno el valor correspondiente (hrs/dia)
¿Podrian por favor sugerirme algo con lo que pueda comenzar a trabajar?
Gracias nuevamente.
2023_02_13_11_13_38_Window
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

Asignar valor por dia en intervalo entre fechas

Publicado por Anonimo (3316 intervenciones) el 13/02/2023 20:54:43
Ojea las consultas en particular la de 'consulta de tabla de referencias cruzadas (el asistente de consultas de Access tiene una plantilla y una guía paso a paso).

Supongo que será para obtener la 'tabla dos' y si al intentarlo no logras lo que necesitas, publica la duda.
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 Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Asignar valor por dia en intervalo entre fechas

Publicado por Norberto (80 intervenciones) el 14/02/2023 12:27:07
Hola:

Lo que pides es complicado ya que quieres mostrar unos datos que no existen. Me explico. Quieres sacar datos para, por ejemplo, el día 28 de febrero, pero esa fecha no tiene ningún registro, solo está comprendida entre dos fechas dadas. Para poder llegar a la tabla 2 (que en realidad sería una consulta de referencias cruzadas) debes de crear una tabla temporal cada vez que, o se produzca un cambio o se vaya a sacar el informe con el gráfico. Esa tabla no se puede crear por medios que ofrezca Access directamente sino que deberemos usar VBA.

Como te has explicado perfectamente y has puesto un pantallazo muy claro, me ha sido muy fácil hacerte el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Option Compare Database
Option Explicit
 
Public Sub GenerarTablaTemporarl()
    Dim Rst1 As DAO.Recordset, Rst2 As DAO.Recordset
    Dim Fecha As Date, miSQL As String
 
    miSQL = "DELETE * FROM Tabla_Temp;" 'SQL para borrar los datos de la tabla temporal
    DoCmd.SetWarnings False 'Desactivamos los avisos
    DoCmd.RunSQL miSQL 'Ejecutamos la consulta de eliminación
    DoCmd.SetWarnings True 'Activamos los avisos
 
    'Abrimos las dos tablas
    Set Rst1 = CurrentDb.OpenRecordset("Tabla_1")
    Set Rst2 = CurrentDb.OpenRecordset("Tabla_Temp")
 
    Do While Not Rst1.EOF   'Hasta que llegemos la final de la Tabla1
        For Fecha = Rst1!Inicio To Rst1!Fin 'recorremos las fechas del inicio al fin
            Rst2.AddNew 'para cada una de ellas creamos un registro en la tabla temporal
            Rst2!Clave = Rst1!Clave 'llenamos los campos
            Rst2!Fecha = Fecha
            Rst2!Horas = Rst1!Hrs_Día
            Rst2.Update  'Guardamos en nuevo registro
        Next
        Rst1.MoveNext
    Loop
 
    'Cerramos las dos tablas
    Rst1.Close
    Rst2.Close
 
    'Vaciamos las variables de objeto
    Set Rst1 = Nothing
    Set Rst2 = Nothing
 
End Sub

El procedimiento deberás ejecutarlo en algún momento antes de abrir el formulario.

Un saludo,

Norberto.

P.S.

Estructura de la Tabla_Temp
Captura-de-pantalla-2023-02-14-121444
El campo Horas deberás hacerlo numérico Simple o Doble si prevés decimales al calcular Horas/Día.

Diseño de la consulta Tabla_2
Captura-de-pantalla-2023-02-14-121734

Y este sería el resultado de la tabla


Captura-de-pantalla-2023-02-14-122512
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
sin imagen de perfil

Asignar valor por dia en intervalo entre fechas

Publicado por omar (2 intervenciones) el 14/02/2023 16:37:06
Buen dia Norberto,

Agradezco tu ayuda y si, funciona sin problema; las adecuaciones que requiero ahora son ya, muy simples de elaborar y mostrar.
Espero muy pronto poder aportar (con mis limitados conocimientos) como lo has hecho conmigo.

Un saludo.

PD: Cierro hilo al encontar respuesta a mi problema.
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