Campo calculado en un informe

Tengo un informe donde tengo un campo [hora Inicio]; otro campo [hora fin] y un campo calculado [total horas] que me calcula las horas de asistencia técnica de cada visita, todos estos campos están incluidos en una tabla de asistencia tecnica; también hay otro campo denominado [mes] con los doce meses del año. Lo que necesito ahora y que no doy con ello, es que en el informe necesito un campo que me haga la suma del campo calculado [total horas] de un mes en concreto, O se saber cuantas horas de asistencia se han generado en un cierto mes.

1 respuesta

Respuesta
2

Puedes hacer varias cosas.

1º Si el informe lo abres desde un botón de un formulario puedes poner, en sus propiedades-eventos-al hacer clic

docmd.openreport"nombre del informe",apreview,,"month([campo fecha]) like[Escribe un mes en formato 00]"

Así, cuando pulses el botón, te hará la pregunta anterior. Escribes el mes que quieres y en el informe sólo te saldrán los registros de ese mes.

2º Supongamos que al construir el informe lo has hecho con el asistente y lo has agrupado por mes. A la derecha del cuadro de texto HoraFin añade otro(luego lo pones como oculto) y supongamos que se llama Texto10. En sus propiedades-datos-origen de control pon

Horafin-horainicio

Y en suma continua pon Sobre Grupo

Luego en el pie de mes pones otro cuadro de texto y en su origen de control pones

=texto10

3º Supongamos que ya tienes hecho el informe y no está agrupado. Haces lo mismo del cuadro de texto10 y en el pie del informe pones ese cuadro de texto con origen de control

=texto10

Como al pulsar el botón sólo te aparecerán los registros de ese mes, en el pie del informe te aparecerá la suma acumulada de ese mes.

¡Gracias! 

Funciona perfectamente la opción 2, y era la que necesitaba.

Gracias de nuevo

Me va bien pero estoy probando el informe y me cuenta solo al ser formato de hora corta, hasta 24 horas luego ya no suma, ?Como puedo resolverlo gracias

Vamos a ver si consigo explicarme. Ningún ordenador trabaja con fechas, ni con horas, son números. Al día 01/01/1900 se le asignó el 1, al 02/01/1900 el 2 y así sucesivamente. Hoy andaremos por el 42738. Tampoco trabajan con horas o minutos, son decimales de día. Por ejemplo 1 hora es 0,0416666 de día. Por tanto tienes que trabajar con las diferencias horarias como si fueran números.

En tu caso, en el informe pondría un cuadro de texto, vamos a suponer que se llama Texto9. En sus propiedades-formato ponle Número general y en su origen del control ponle

=horafinal-horainicial

Y en Suma continua ponle Sobre grupo

De momento déjalo visible

Si abres el informe en vista previa de impresión verás que te sale algo así como 0,1234

Esto si lo multiplicaras por 24 te daría la diferencia en horas. Luego habría que calcular los minutos

En el pie del informe pon un cuadro de texto y en sus propiedades-origen del control pon

=texto9

Esto sería la suma de la diferencia en decimal. Ahora hay que transformarla en horas y minutos.

Pon otro cuadro de texto y en su origen de control pon

=texto9*24

Esto sería la suma de horas. Vamos ahora a calcular los minutos. Pon otro cuadro de texto y en su origen de control pon

=([texto9]-Int([texto9]))*60

Eso serían los minutos, que también tendrían una parte decimal para convertirlos en segundo. Pero en este caso lo dejamos ahí.

Una vez hayas visto el proceso, borra todos los cuadros de texto del pie del informe y pon uno sólo y en su origen de control pon

=Int([texto9]*24) & ":" & Int(([texto9]-Int([texto9]))*60)

Con lo cual te saldrán, por ejemplo

248:45

De todas formas, si ves que es liado y quieres, mándame un mensaje a [email protected] y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias A. Ruiz ya que si no sé quien me escribe ni los abro.

Animo y un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas