Capturar valor de campo calculado en dos tablas diferentes Access

En el pie de un formulario llamado "F_Entrada" tengo un campo calculado e independiente llamado "IVA". Quisiera que el valor de este campo se almacene en una tabla llamada "T_Entrada" en un campo llamado "nIva" y en otra tabla llamada "T_IVA" que también tiene un campo llamado "nIVA". He tratado de hacerlo de diferentes formas pero no he podido. Por ejemplo:

Dim lnValorIVATotal As Currency
lnValorIVATotal = Iva
Me.nIva.Value = lnValorIVATotal
1

1 respuesta

Respuesta
1

Puedes hacerlo de varias formas:

1º/ Usando consultas SQLs en el evento apropiado:

Si quieres añadir registro nuevo:

CurrentDb.Execute "INSERT INTO T_ENTRADA (nIVA) VALUES (" & Me.IVA & ")"
CurrentDb.Execute "INSERT INTO T_IVA (nIVA) VALUES (" & Me. IVA & ")"

o con SQLs de tipo UPDATE si lo que buscas es actualizar un registro concreto, en cuyo caso tendrás que indicar cual:

CurrentDb.Execute "UPDATE T_ENTRADA SET nIVA=" & Me.IVA & " WHERE ...."
CurrentDb.Execute "UPDATE T_IVA SET nIVA=" & Me.IVA & " WHERE ...."

2º/ Si las dos tablas están relacionadas con la tabla/consulta origen del formulario, puedes poner dos cuadros de texto ocultos con origen de los campos de las dos tablas, y les pasas el valor con un código similar al que pones en tu pregunta.

Un saludo.


Buenas noches, muchas gracias, me fué útil la respuesta de la segunda opción. Tengo otra duda. El campo calculado se actualiza al instante cuando ingreso valores en el campo del subformulario del cual depende este. Pero el valor del campo oculto de la tabla donde quiero que se ingresen los datos no se actualiza igual de instantáneamente.

He probado ubicando el código en el cuadro oculto y en el calculado:

Dim lnValorIVATotal As Currency
lnValorIVATotal = Iva
Me.nIva.Value = lnValorIVATotal

En:

Private Sub nIva_BeforeUpdate(Cancel As Integer)
Private Sub nIva_Dirty(Cancel As Integer)
Private Sub nIva_Exit(Cancel As Integer)

Pero no me ha dado resultado, lo mas cercano que he llegado es dando clic al cuadro calculado y luego en otro lugar para que al perder el foque se actualice el campo oculto. 

Pero lo que realmente necesito es que el campo oculto se actualice al instante con el campo calculado.

Muchas gracias por su atención y espero haberme hecho explicar.

Tu problema es la elección del evento: en el cuadro calculado no se producen eventos de forma automática como "después de actualizar" o "al cambiar", y a menos que pases el foco (cursor) por él, tampoco los relacionados con eso.

Lo que has de hacer es buscar el evento más adecuado en alguno de los campos que intervienen en el cálculo.

Por ejemplo, si tu campo fuera un total, que depende del precio (que es automático al elegir un producto) y de la cantidad, yo usaría el evento "después de actualizar" del campo cantidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas