Access - Evento de Txt Box cuando value es un vínculo.

 
Vista:

Evento de Txt Box cuando value es un vínculo.

Publicado por MIky (7 intervenciones) el 26/09/2005 11:29:03
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 saludotos 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:47:41
Una posible solución para guardar el resultado de un cálculo en un registro de una tabla asociada al formulario principal es utilizar el evento AfterUpdate del control TxtBox1 en el subformulario. Puedes seguir los siguientes pasos:

1. Abre el subformulario en modo Diseño.
2. Selecciona el control TxtBox1.
3. Ve a la ficha Eventos en la ventana de propiedades del control.
4. Busca el evento AfterUpdate 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 AfterUpdate del control.
6. Dentro del procedimiento, agrega el código para guardar el resultado en la tabla asociada al formulario principal:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub TxtBox1_AfterUpdate()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
 
    Set db = CurrentDb
    Set rs = db.OpenRecordset("NombreTablaAsociadaAlFormularioPrincipal")
 
    rs.AddNew
    rs("CampoResultado") = Me.TxtBox1.Value
    ' Aquí puedes agregar más campos de la tabla y asignarles valores si es necesario
 
    rs.Update
    rs.Close
    Set rs = Nothing
    Set db = Nothing
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 formulario.

Ahora, cada vez que el control TxtBox1 se actualice con el resultado del cálculo, se ejecutará el evento AfterUpdate y se guardará el resultado en la tabla asociada al formulario principal.

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

Esta solución te permitirá guardar el resultado del cálculo en la tabla asociada al formulario principal de forma automática y sin problemas de timing.
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