Acerca de campos calculados, tablas y formularios

Hola jpaniagua, espero que tengas tiempo para ayudarme en esto, ya he leído varias respuestas tuyas a este tipo de problemas y en principio funcionan en mi caso pero hay un detallito que no entiendo aquí voy.
Suponiendo que tengo este modelo
Facturas
id_factura
valor_total
ARTICULOS
id_articulo
nombre
precio
id_factura
Estas dos tablas estan relacionadas 1:N la tabla principal como veras es FACTURAS, el problema es que quiero que FACTURAS.valor_total sea calculada con la suma del campo precio de ARTICULOS, tu le explicaste a alguien ya en una situacion parecida. En el Formulario FACTURAS que contiene el subformulario ARTICULOS subformulario creo un control en el pie del formulario y le doy en origen de datos = Suma([precio]) y despues en el formulario principal en el control valor_total le doy en origen de datos e ingreso forms![FACTURAS]![ARTICULOS Subformulario]![precio]. Ok en el campo muestra la sumatoria correctamente pero grabo el registro y despues voy a verificar en la tabla en el campo valor_total de FACTURAS hay un 0. Como hago que quede grabado en el campo de la tabla?
Gracias por tu tiempo

1 Respuesta

Respuesta
1
La explicación a la que te refieres es para controles independientes, no para controles dependientes como es tu caso. La solución para controles dependientes es crear una consulta de actualización
Te explico una solución fácil (mediante una consulta creada en vista diseño):
Selecciona el campo valor_total y en Actualizar a pon lo siguiente:
=DSuma("precio";"ARTICULOS";"[id_factura]=" & [id_factura] & "")
Ahora debes lanzar la consulta (desde un botón, después de actualizar los datos del cuadro de texto precio...)
Puedes hacer desde una macro o desde VB:
Macro
EstablecerAdvertencias No
Abrir consulta Tuconsulta
Visual Basic
Método 1
Docmd.Set Warnigns False
Docdm. OpenQuery. "Tuconsulta"
Método 2 (Visual Basic y SQL)
Docmd.Set Warnings False
Domcd. RunSql "INSER INTO ... " ----- > Mira la consulta que has hecho en vista SQL y copia y pega

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas