Suma subformulario pasar a campo en formulario

Es la primera vez que escribo en todo expertos, y desde luego me parece genial esta sección, mirando respuestas he encontrado cosas que no sabia como hacer.
Lo que voy a preguntar he buscado, y he visto cosas relacionadas pero más complejas, y supongo que esto debe ser más sencillo...
Necesito pasar un cuadro de texto que contiene una suma que esta en un subformulario, a un campo llamado IMPORTE del formulario principal, he probado con un evento en el cuadro de texto al actualizar, pero o me falla la sintaxis, o algo no hago bien.

1 respuesta

Respuesta
1
Este es un ejemplo mio...
Private Sub Form_AfterUpdate()
CalcularTotales
End Sub
******************
y el procedimiento Calcular totales seria:
Public Sub CalcularTotales()
Dim RegDetalle As DAO.Recordset
Dim TotDetalle As Single
Set RegDetalle = Me.RecordsetClone
TotDetalle = 0
If RegDetalle.RecordCount > 0 Then
RegDetalle.MoveLast: RegDetalle.MoveFirst
For i = 1 To RegDetalle.RecordCount
TotDetalle = TotDetalle + Nz(RegDetalle("SUBTOTAL"))
RegDetalle.MoveNext
Next i
End If
Forms("FACTURAS").Estoc = TotDetalle
Forms("FACTURAS").total = TotDetalle + Nz(Forms("FACTURAS").Lacticos) + Nz(Forms("FACTURAS").Carne_Bayó) + _
Nz(Forms("FACTURAS").Carne_Pollo) + Nz(Forms("FACTURAS").Pan_Bioforn) + _
Nz(Forms("FACTURAS").Verdura)
End Sub
Lo hago por medio de objetos recordset que manipulan registros... recorrro los registros del subformulario pra totalizar..
Att:telemaco
El evento al actualizar, se desencadena, si se cambia MANUALMENTE un valor.. pero no así si se desncadena por el resultado de un calculo o cambio "automatizado"...
Te aconsejo que si es un calculo que se hace al ingresar registros en un subformulario... en el evento actualizar del formulario, lo programes... y mandes el valor a la caja de texto del formulario principal..
Att:telemaco
Dices que lo ponga al actualizar el subformulario ¿no?, de esta forma ¿lo actualizaría al cambiar un campo?, o lo actualizaría solamente al salir del subformulario.
Me puedes poner la sintaxis porque creo haberlo probado y supongo que no lo debí hacer bien.
Gracias
Gracias por tu respuesta.
Pero entonces, de un campo de texto situado en el pie de subformulario que calcula un total, no se puede coger su valor y meterlo en el campo de un registro del formulario, ¿sin más?
Pues si lo que me cuentas es la única forma lo intentare, pero no se si seré capaz, porque nunca he tocado programación en Access.
Intentando comprender el código que me pones, doy por hecho que SUBTOTAL es el campo de registro del subformulario del que queremos el sumatorio ¿no?, si es así lo sustituyo por PRECIO que así se llama mi campo.
Forms("FACTURAS").Estoc = TotDetalle
En esta linea "FACTURAS" es el formulario y "ESTOC" es el campo donde queremos meter el sumatorio del subformulario, si no me equivoco Totdetalle almacena la suma al moverte por los registros.
Forms("FACTURAS").total = TotDetalle + Nz(Forms("FACTURAS").Lacticos) + Nz(Forms("FACTURAS").Carne_Bayó) + _
Nz(Forms("FACTURAS").Carne_Pollo) + Nz(Forms("FACTURAS").Pan_Bioforn) + _
Nz(Forms("FACTURAS"). Verdura)
Esto me pierde, ¿tengo qué poner algo de esto?
Te doy mis nombres por si te sirve de algo:
Formulario: TRABAJOS
Subformulario: TRABAJOS-MATERIALES
Campo del suform a sumar: PRECIO
Campo a meter el sumatorio perteneciente al Formulario principal: IMPORTE
Gracias por tu paciencia Telemaco.
Gracias Telemaco.
Al final para lo que quiero he encontrado otra fórmula que yo desconocía bastante simple, que funciona de maravilla. He utilizado una consulta de totales, y cada vez que necesito el total para un formulario o informe, desde otra consulta utilizo esa consulta de totales, así ya no necesito calcular el total y meterlo en el formulario.
Supongo que esto que acabo de descubrir debe ser básico, pero lo poquito que se, lo he aprendido solo, y claro hay cosas que se escapan.
Gracias por todo.
Pero entonces, de un campo de texto situado en el pie de subformulario que calcula un total, no se puede coger su valor y meterlo en el campo de un registro del formulario, ¿sin más?
NO SE PUEDE... porque se debe indicar donde se debe capturar el valor... indicando el camino
***Forms("FACTURAS").Estoc = TotDetalle
En esta linea "FACTURAS" es el formulario y "ESTOC" es el campo donde queremos meter el sumatorio del subformulario, si no me equivoco Totdetalle almacena la suma al moverte por los registros.
TIENES LA IDEA DE LO DEMÁS... facturas es el nombre del subformulario exactamente.
Intentalo a ver como te va...
Me avisas
Att:telemaco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas