Access - Suma y Resta de campos de un subformulario

 
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

Suma y Resta de campos de un subformulario

Publicado por Carlos (43 intervenciones) el 19/03/2018 23:22:02
Buenas noches:

Estoy intentando calcular las horas totales de una persona en un subformulario

Hora I. T. mañana - H. F T de mañana - T.H T de Mañana Turno Mañana
Hora I. T. Tarde - H. F. T de Tarde - T.H,T de Tarde Turno de Tarde
Hora Inicio A.P - Hora Final A. P - T. H.A.propios Asuntos propios

07:00 15:00 8:00 H 16:00 18:00 2H 11:00 12:00 1 Total Horas 11

La expresión que uso es:

=suma[(H.F.T.Mañana]-[H.I. T Mañana]+[H.F.T. Tarde]-[H:I .T Tarde[-[H.FinalA.P]-[H.Incio A.P]*24

LO que pasa:

Si son dos cantidades de horas a - Suma bien cuando pasa de dos ya empieza a sacar valores incluso negativos
Si alguien me puede decir donde tengo el error , se lo agradeceria.
Un saludo
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 Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Suma y Resta de campos de un subformulario

Publicado por Norberto (753 intervenciones) el 20/03/2018 09:16:42
Hola.

Aparte del lío de paréntesis corchetes y puntos que te has hecho el problema puede estar en el caso de que haya valores nulos en alguno de los campos (si no tiene asuntos propios, p.e.). También veo que sumas los asuntos propios en vez de restarlos (a no ser que cuenten como trabajadas, en cuyo caso y, según tu ejemplo, la hora de 11:00 a 12:00 se la estás contando dos veces). Para evitar los primero prueba a usar la función Nz() y con lo segundo deberías de invertir los signos.

=Suma(Nz([H.F.Mañana]) - Nz([H.I.Mañana]) + Nz([H.F.Tarde]) - Nz([H.I.Tarde]) - Nz([H.FinalA.P.]) + Nz([H.InicioA.P.])

Prueba a ver.

Un saludo,

Norberto.

P.S. ¿Por qué no llamas InicioMañana, FinMañana, IncioTarde, FinTarde, IncioAP y FinAP a los campos? Si los nombres no tienen espacios ni signos de puntuación te ahorras los corchetes y simplificas la sintaxis.
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

Suma y Resta de campos de un subformulario

Publicado por Carlos (43 intervenciones) el 20/03/2018 20:37:27
Gracias.
Buenas Tardes:
He seguido tus indicaciones pero me da unos valores , - 0,625 cuando debería ser 15 o 4,625 cuando debería ser: 61

=Suma(Nz([H Inicio TM])-Nz([H Finala TM])+Nz([H Inicio TT])-Nz([H Final TT])-Nz([H Inicio AP])-Nz([H Final AP]))

Espero que lo que realizado esté bien


* El Campo finala está mal escrito pero está así definido

Espero tus noticias
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

Suma y Resta de campos de un subformulario

Publicado por Anonimo (3314 intervenciones) el 21/03/2018 01:31:12
Quizas una funcion de las que dispone Access (DateDiFF) seria la forma idonea de calcular las horas (mejor los minutos para ser mas fiel) de cada intervalo y despues hacer con ellos las operaciones correctas.

Creo que esa expresion esta incorrectamente planteada, pues no calcula INTERVALOS, suma y/o resta jugando con todas las fechas como si fuesen cada una un dato (y solo son 'datos por parejas': cada pareja=un dato) en definitiva, para que sea fiel hay que añadir ..... mas parentesis.
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 Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Suma y Resta de campos de un subformulario

Publicado por Norberto (753 intervenciones) el 21/03/2018 11:03:06
Hola.

Siento contradecirte, pero funciona perfectamente y calcula las horas perfectamente. Añadir paréntesis o no, no habiendo multiplicaciones no tiene ningún sentido.

A-B + C-D - E+F es exactamente lo mismo que hacer pares (A-B) + (C-D) - (E-F). Propiedad asociativa. También podría cambiar el orden y poner todas las horas de salida menos todas las horas de entrada:

A + C + F - B - D - E. Propiedad conmutativa.

Y el resultado seguiría siendo el mismo.

Un saludo,

Norberto.
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

Suma y Resta de campos de un subformulario

Publicado por Carlos (43 intervenciones) el 21/03/2018 11:42:51
Buenos días:

No sé si esta expresión esta bien, pero al ejecutarla me da ERROR

=Suma(Nz([H Inicio TM])-Nz([H Finala TM])-Nz([H Inicio AP])-Nz([H Final AP)+Nz([H Inicio TT])-Nz([H Final TT]))

Si hay otra forma, la cambiaría

Un saludo y 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
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

Suma y Resta de campos de un subformulario

Publicado por Norberto (753 intervenciones) el 21/03/2018 13:04:45
Hola.

Tabla
Captura

Consulta para cada día
Diseño
Captura2
Resultado
Captura3

Consulta sumando todos los días
Diseño
Captura4
Resultado
Captura5

Un saludo,

Norberto.
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

Suma y Resta de campos de un subformulario

Publicado por carlos (43 intervenciones) el 26/03/2018 19:32:38
Buenas Tardes:
No me sale, pero creo que lo estoy haciendo mal.
Si quieres te puedo mandar la base de datos a un correo que me digas
Un saludo
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