Access - Eventos de un TXT box cuyo valor está vinculado

 
Vista:

Eventos de un TXT box cuyo valor está vinculado

Publicado por miky (7 intervenciones) el 26/09/2005 11:38:14
Hola a todos,
haber quien me puede orientar con mi problemilla.

En un form tengo un Subform filtrado en el que realiza un cálculo despues de introducir unos datos. Este cálculo lo tengo que guardar en un registro de una tabla asociada al Form Principal.

El problema viene porque no se asociar directamente el resultado de la operación al registro de la tabla y lo he intentado a traves de un txt box.

TxtBox1 --> contiene el valor del calculo una vez realizado
TBL_TxtBox1 --> es el control que asocia el campo de la tabla donde guardar el calculo.

Si lo hago linkando los controles del modo
me. TBL_TxtBox1=me.TxtBox1

Asociando esta linea de código a algun evento de sub form ( al salir, despues de actualizar..., etc) tengo un problema de timing porque la acción de calcular el resultado es más lenta y siempre se copia el resultado anterior.

Si se pudiera controlar que TxtBox1 ha cambiado de valor podría servir, pero los eventos sólo se ejecutan cuando el control se modifica de forma manual. El valor lincado no afecta a los eventos o yo no lo se ver)....

A alguien se le ocurre como puedo salir de esto?

Gracias y saluditos a todos.
Miky
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Guardar resultado de cálculo en tabla asociada al subformulario

Publicado por Alejandro (4142 intervenciones) el 09/06/2023 22:49:28
Para solucionar el problema del timing y asegurarte de que el resultado del cálculo se guarde correctamente en la tabla asociada al formulario principal, puedes utilizar el evento Form_Current del subformulario. Este evento se ejecuta cada vez que se selecciona un registro diferente en el subformulario.

Sigue los siguientes pasos:

1. Abre el subformulario en modo Diseño.
2. Haz clic en el subformulario (no en ningún control dentro de él) para seleccionarlo por completo.
3. Ve a la ficha Eventos en la ventana de propiedades del subformulario.
4. Busca el evento Form_Current y haz doble clic en el recuadro vacío al lado del evento.
5. Se abrirá el editor de código VBA y se creará automáticamente el procedimiento correspondiente al evento Form_Current del subformulario.
6. Dentro del procedimiento, agrega el código para asignar el resultado del cálculo al campo correspondiente de la tabla asociada al formulario principal:

1
2
3
Private Sub Form_Current()
    Me.Parent!NombreTablaAsociadaAlFormularioPrincipal.Form!CampoResultado = Me.TxtBox1.Value
End Sub

7. Reemplaza "NombreTablaAsociadaAlFormularioPrincipal" con el nombre real de la tabla asociada al formulario principal.
8. Asegúrate de ajustar "CampoResultado" con el nombre del campo en la tabla donde deseas guardar el resultado.
9. Guarda y cierra el editor de código.
10. Guarda los cambios en el subformulario.

Con esta solución, cada vez que se seleccione un registro diferente en el subformulario, se ejecutará el evento Form_Current y se asignará el valor del cálculo al campo correspondiente de la tabla asociada al formulario principal.

Asegúrate de ajustar los nombres de los controles y tablas según tu estructura y nombres reales.

Con esto, el resultado del cálculo se actualizará correctamente en la tabla asociada al formulario principal, evitando problemas de timing y asegurando que siempre se guarde el valor actualizado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar