Suma de Campos de Subformulario

Tengo y formulario principal en el que despliego los datos de mi empleado, dentro de este formulario tengo un subformulario de horas trabajadas, en el cual tengo los campos de, fecha(FECHA), hora de inicio(HI), Hora de salida(HF) y horas totales(HT), los últimos 3 campos son Formato Hora corta!
Puesto que es un subformulario pues aparecen varios campos, referentes a mi empleado!
Hasta aquí todo va bien!
Ahora viene lo que no me queda!
Quiero desplegar dentro del formulario principal una caja de texto con la suma de HT y no me sale.

1 Respuesta

Respuesta
1
Te explico la forma más sencilla y eficaz:
Imagino que la vista del subformulario es hoja de datos, si es este tu caso (algo muy común) vamos a realizar lo siguiente:
Suponiendo que tengas un formulario principal llamado FRMTRABAJADOR y un subformulario llamado SFRMHORAS vamos a colocar un control independiente en el pie del subformulario que sume las horas totales al que llamaremos Total_Trabajado (como es lógico en la vista hoja de datos no se ve), pon como origen de datos del control =Suma([HT]), esto suma las horas totales del subformulario. Ahora vamos con el engaño ya que lo que se verá en el formulario principal será lo que tenga el control Total_Trabajado. Siguiendo el ejemplo coloca otro control independiente en el formulario principal, donde más te convenga, poniendo esta vez como origen del control Forms![frmtrabajador]![SFRMHORAS]! [Total_Horas]
Te lo explico:
Un subformulario es un control dentro de un formulario por eso para hacer referencia a un control del subformulario antes debes llamar al formulario padre.
Otra forma algo más complicada (utiliza una función de agregado de dominio):
Vamos a suponer que tienes una estructura de tablas parecida a esta:
TABLA_TRABAJADORES
Cod_Trabajador (Número)
Trabajador (Texto)
TABLA_HORARIOS
Cod_Horario (Campo Clave)
Fecha
HI
HF
HT (Puede ser que tengas un campo calculado)
Cod_Trabajador (Referido a la tabla trabajadores)
En el formulario principal al que hemos llamado FRMTRABAJADOR coloca un control independiente y pon como origen del control
=DSum("HT";"TABLA_HORARIOS";"[Cod_Trabajador]=" & Forms![FRMTRABAJADOR]![Cod_Trabajador] & "")
No lleva espacios.
Esto hace lo mismo que lo anterior pero si no estas familiarizado es preferible que empieces por la primera solución.
Wao, es una respuesta tal y como la esperaba (En lenguaje mortal)!
Gracias, por que ya me estaba frustando con este tema!
Me ha servido de gran utilidad, ma has resulelta la vida de aquí a los próximos 15 minutos, que me salgan más detalles!
Estoy muy AGRADECIDO, muy AGRADECIDO, muy AGRADECIDO!
Un Saludo y un Abrazo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas