Access - Sumar las horas mensuales del año

 
Vista:
Imágen de perfil de Carlos
Val: 77
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Sumar las horas mensuales del año

Publicado por Carlos (43 intervenciones) el 04/02/2018 23:53:49
Buenas noches:

Quiero poder sumar en un formulario e informe las horas de los meses de un años.
Para poder sumar horas he usando este método que es este medio me habeis ayudado:

1 Enero Total H Día 8H 8 (Quiero poder ir sumando las horas de cada día y mes 8
2 Enero Total H Día 8H 16 ----------------------------------------------------------------------- 15
-----------------------------------------------------------------------------------------------------------------------------------------------
1 Febrero Tota H dia 7H 7 --------------------------------------------------------------------------- 23
2 Febrero Total H Día 8 h 15 ------------------------------------------------------- ----------- -------38

La primera parte me funciona pero el acumular las horas de cada mes y saber cuantas horas tengo en lo que va del año no me sale
Espero vuestra ayuda.
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
Imágen de perfil de Javier
Val: 60
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Sumar las horas mensuales del año

Publicado por Javier (21 intervenciones) el 05/02/2018 23:42:51
Buenas

Puedes probar con la siguiente funcion

Copia y pegala en MODULO standard (No de Clase)

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Private Function funTest()
      MsgBox funTiempo(#4/28/1950 10:05:20 AM#, now)
End Function
 
 
 
 
Public Function funTiempo(ByVal Fecha_Inicio As Date, ByVal Fecha_Fin As Date) As String
'---------------------------------------------------------------------------------------
' Procedure : funTiempo
' DateTime  : 08/02/2009  23:32
' Autor:          Navigator
' Modifications    :  Javier Gomez ("Javier.Mil")
' WEB       :  http://www.accessdemo.info
' Purpose   : Calculo de tiempo en Años , Meses , Dias, Horas , Segundos
'---------------------------------------------------------------------------------------
 
 
 
 
Dim datFechaCalculo As Date
Dim lngAnios As Long
 
Dim bytMeses As Byte
Dim bytDias As Byte
 
Dim bytHoras As Byte
Dim bytMinutos As Byte
Dim bytSegundos As Byte
 
 
 
      Rem  si la Fecha Fin es menor que la de inicio salimos sin hacer los calculos
      Rem  En determinadas condiciones es posible que no nos importe recibir valores negativos
      Rem  en tal caso habrá que anular estas tres líneas
      If Fecha_Fin < Fecha_Inicio Then
            MsgBox "La fecha de Inico No puede ser mayor que la fecha final", vbExclamation, "Error Fecha"
            Exit Function
      End If
 
 
 
      Rem  Calculo de AÑOS
      lngAnios = DateDiff("yyyy", Fecha_Inicio, Fecha_Fin)
      If Month(Fecha_Fin) < Month(Fecha_Inicio) Then
            lngAnios = lngAnios - 1
      ElseIf Month(Fecha_Fin) = Month(Fecha_Inicio) And Day(Fecha_Fin) <= Day(Fecha_Inicio) - 1 Then
            lngAnios = lngAnios - 1
      End If
      Rem  añadimos a fechaCalculo la fracción de tiempo que acabamos de computar
      datFechaCalculo = DateAdd("yyyy", lngAnios, Fecha_Inicio)
 
 
      Rem  Calculo de MESES
      bytMeses = DateDiff("m", datFechaCalculo, Fecha_Fin)
      If Day(Fecha_Fin) < Day(Fecha_Inicio) Then
            bytMeses = bytMeses - 1
      End If
      datFechaCalculo = DateAdd("m", bytMeses, datFechaCalculo)
 
 
      Rem  Calculo de DIAS
      bytDias = DateDiff("d", datFechaCalculo, Fecha_Fin)
      If Hour(Fecha_Fin) < Hour(Fecha_Inicio) Then
            bytDias = bytDias - 1
      End If
      datFechaCalculo = DateAdd("d", bytDias, datFechaCalculo)
 
 
      Rem  Calculo de HORAS
      bytHoras = DateDiff("h", datFechaCalculo, Fecha_Fin)
      If Minute(Fecha_Fin) < Minute(Fecha_Inicio) Then
            bytHoras = bytHoras - 1
      End If
      datFechaCalculo = DateAdd("h", bytHoras, datFechaCalculo)
 
 
      Rem  Calculo de MINUTOS
      bytMinutos = DateDiff("n", datFechaCalculo, Fecha_Fin)
      If Second(Fecha_Fin) < Second(Fecha_Inicio) Then
            bytMinutos = bytMinutos - 1
      End If
      datFechaCalculo = DateAdd("n", bytMinutos, datFechaCalculo)
 
 
      Rem  Calculo de SEGUNDOS
      bytSegundos = DateDiff("s", datFechaCalculo, Fecha_Fin)
 
 
      funTiempo = _
      lngAnios & " Años  " & _
      bytMeses & " Meses  " & _
      bytDias & " Dias  " & _
      bytHoras & " Horas  " & _
      bytMinutos & " Minutos  " & _
      bytSegundos & " Segundos"
 
End Function

Solo tienes que adaptar la funcion a tu necesidad ...


 
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 Carlos
Val: 77
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Sumar las horas mensuales del año

Publicado por Carlos (43 intervenciones) el 06/02/2018 11:58:20
Creo que no me explicado bien.
Solo intento ir sumando las horas que tengo de cada día del mes y que en otro campo acumulen las horas de cada mes y así me dará las horas que llevo en el año.
Muchas gracia.

El módulo que me has enviado, lo he cargado pero no afecta para nada a este problema o yo no lo realizo correctamente.

Muchas gracias.
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

Sumar las horas mensuales del año

Publicado por Anonimo (3303 intervenciones) el 06/02/2018 10:09:37
Si ya dispones de un método para sumar tiempos, no veo cual es el problema real, solo es una cuestión de planteamiento.

En principio dejaría a un lado a los formularios y (dado que es un extracto-resumen) utilizaría informes, pues en ellos hay herramientas que facilitan esas operaciones.

En el informe AGRUPARIA por Años y dentro de ellos por meses, siendo 'el detalle' los días y sus horas.
DUPLICARIA esa suma diaria, le activaría la propiedad 'suma continua' (disponible en los informes) y le indicaría que sumase por agrupación.

Ya dispondríamos de resúmenes (sumas) mensuales independientes
Si aplicamos el mismo método a esa suma (el resumen mensual), obtendríamos los resultados por año.

Y todo ello .... basándonos en la suma de horas diarias.

Para los formularios hay metodología, pero no es tan sencillo (ni creo que útil, pues un formulario es dinámico y no admite según que presentaciones o agrupaciones)
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 Carlos
Val: 77
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Sumar las horas mensuales del año

Publicado por Carlos (43 intervenciones) el 06/02/2018 11:53:58
Buenos días:Suma
Si miras en Informes:
" INFORME VISTA GENERAL DE CP POR MES"
En ese informe tengo campos definidos de horas( Turno mañan, Turno de tarde, Asuntos Propios, con sus totales.
Hay otro campo que son las horas totales Día
El siguiente campo son la Suma de todas las horas de los días por mes.
Y el problema que tengo. Lo que quiero en otro campo me vaya sumando las horas de los meses y así podré obtener las horas por año.

Me he permitido el mandarte esta pequeña BD y así podrás ver con claridad lo que deseo y que no se como hacerlo.
No sé si el mandarte la BD de datos por este medio es muy correcto, si no es así, dímelo e intentaré borrarla

Un saludo y gracias, muchas gracias
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

Sumar las horas mensuales del año

Publicado por Anonimo (3303 intervenciones) el 06/02/2018 14:46:25
Aprecio un problema conceptual:

Tenemos dos campos, en uno una cifra, en el otro una descripción (esa cifra en texto)

campo_A = 100, Campo_B = "Cien"

Deseamos sumar acumulando, ¿Qué campo se utilizaría para ello?:
.- opción uno: el Campo_A
.- opción dos: el Campo_B


Solo hay que decidirse por el adecuado y aplícarlo en el informe.

Nota: Un campo calculado y formateado es TEXTO (aunque describa una cifra)
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 Carlos
Val: 77
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Sumar las horas mensuales del año

Publicado por Carlos (43 intervenciones) el 06/02/2018 19:54:41
Buenas tardes:
No me aclaro y lo siento.
Soy muy novato e intento aprender, pero no se como aplicar tú explicación.
Gracias
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

Sumar las horas mensuales del año

Publicado por Anonimo (3303 intervenciones) el 07/02/2018 17:36:31
Para sumar por periodos (años en este caso) hay que crear esa agrupación (inexistente en el informe que se utiliza como referente).

Las agrupaciones tienen una cabecera y un pie que se pueden activar de forma independiente y (normalmente) se utiliza el pie para presentar resúmenes, cálculos o presentaciones finales.

Si en el pie de la agrupación mensual se pone un cuadro de texto que 'copie' la información de la suma continua, esta tomara el valor final (el total de esa acumulación) y si se le activa la suma continua a ese objeto, su valor final mostrara el acumulado de los meses

Lo único que se precisa, es que ese valor 'sea sumable' y puede adoptar las características 'estéticas' del que actualmente se utiliza para el acumulado mensual (en el informe ese cometido lo efectúa el cuadro de texto 'Suma Minutos') no el cuadro de texto 'texto41' o su fiel copia 'texto47' .

Aconsejaría que los nombres utilizados en los objetos indiquen su cometido, normalmente los genéricos suelen ser confusos e inútiles ... cuando se revisa el código al cabo de un tiempo ('suma minutos' indica algo, 'textoxx' no aclara para que sirve)

Quizás (y es una sugerencia) si mientras se esta en diseño se hiciese visible a 'suma minutos' se podría tener una visión mas clara de la línea a seguir, cuando todo este a gusto del autor, es (o seria) la hora de ocultar lo innecesario (o borrarlo si fuera el caso) para conseguir la estética final.

Aclarando mi anterior respuesta (campo_A = 100, Campo_B = "Cien")

Suma minutos ==> Campo_A
Texto41 ==> Campo_B
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 Javier
Val: 60
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Sumar las horas mensuales del año

Publicado por Javier (21 intervenciones) el 07/02/2018 18:43:35
 

La verdad es que estoy un poco sorprendido y No entiendo que si te regalo una función con un nombre de AUTOR , vas tu y le cambias la autoría (apropiándote) insertada en tu fichero Nothelia.rar

Lo normal es que se conserve intacta la nota de autor que viene adjunta.

Lo siento pero No me parece correcto


 
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 Carlos
Val: 77
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Sumar las horas mensuales del año

Publicado por Carlos (43 intervenciones) el 07/02/2018 19:10:27
Lo siento era una simple forma de no tener en esa base de datos otros nombre que no fuera yo.
Si te parece mal lo restituyo a su nombre original.
Esta BD es una cosa muy sencilla entre mi sobrina y yo y nadie lo va a veer.
Lo siento, tal vez he pecado de orgullo mal entendido para que la persona que va usar esta BD viese que no era mio,
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