Grabar dato de campo calculado en campo de tabla

el problema que experimento es el siguiente: he creado un formulario FACTURA con su correspondente subformulario DETALLE DE FACTURA los cuales tienen sus orígenes de datos en dos tablas con sus correspondientes nombres, el caso es que no consigo enviarle el dato del TOTAL que, obtengo de la fórmula =Suma([SubTotal]), al campo de la tabla.

1 respuesta

Respuesta
1

Carlo, si en el origen de un control le pones una operación, expresión, etc, ya lo "dejas ocupado", por tanto sólo lo puedes guardar usando código, por ejemplo, usando

Docmd.runsql"update detallenventa set Total=.... where....

Por eso siempre aconsejo dejar como origen del control el campo de la tabla donde quieras guardar el valor y hacer la operación en código. Por ejemplo, supongamos que tienes los formularios Ventas y DetalleVenta. En Ventas tienes un campo TotalVenta y en el subformulario tienes Producto, precio, cantidad y Subtotal. En el evento Después de actualizar del cuadro de texto Cantidad puedes poner

Subtotal=precio*cantidad

docmd.runcommand accmdsaverecord

me.parent!totalventa=Dsum("subtotal","detalleventa","idventa)" & me.idventa & "")

Así, a medida que vas poniendo registros en el subformulario, en el control TotalVentas del formulario te irá poniendo la suma acumulada y como este cuadro tiene origen del control en el campo TotalVenta de la tabla te lo guarda.

Estimado Icue, aparentemente funciona bien la explicacion que me has dado, el problema ahora es que me aparece el siguente error

Carlo, creo que lo mejor es que o bien me envíes una copia vacía de tu base, o bien me mandas un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo. En ambos casos, en el asunto del mensaje pon tu alias Carlo, ya que si no sé quien me escribe ni los abro.

bien estimado, ya te he enviado el mensaje con mi Alias Carlos

Como seria la sentencia completa del update, al que haces referencia anteriormente ???

Independientemente de que mire ahora lo que has mandado. Si tengo una tabla Ventas

Como puedes ver TotalVenta está vacío. En el formulario Ventas, he puesto en el pie del subformulario un cuadro de texto Texto9 en cuyo origen de control he puesto lo que supongo has puesto tu

=suma([subtotal])

y un botón

Si pulso el botón

Y me deja la tabla Ventas como

El código del botón es

O sea, actualiza el campo TotalVenta de la Tabla Ventas al valor que figura en el cuadro de texto9, en aquel registro en que el IdVenta sea igual al que está en ese momento en el formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas