Actualizar formulario
Publicado por Solmar (5 intervenciones) el 20/04/2015 23:11:02
Buenas tardes:
Se trata de lo siguiente. Tengo un formulario que tiene un botón que carga otro formulario que es para la edición de datos. Lo que necesito hacer es que una vez modificados los datos en el formulario de edición, al cerrarlo, los datos en el formulario inicial se refresquen y actualicen. Así lo estoy haciendo:
Cierro el formulario inicial al cargar el formulario de edición. Una vez terminada la edición del formulario, guardo en una variable el ID del registro y cargo el formulario inicial apuntando al registro editado y cierro el formulario de edición. Para esto he creado una variable pública en un módulo de esta forma:
La variable CODIGOPACIENTE es la que almacena el ID del registro al momento de cargar el formulario de edición, mientras que la otra variable, CODIGOPACIENTEEDITAR es la que uso para cargar el formulario inicial nuevamente.
En el formulario inicial tengo este código para realizar la acción necesaria (si hay dato en la variable CODIGOPACIENTEEDITAR entonces se va a ese registro, caso contrario va al inicio)
He probado primero sin el acCmdRefresh pero en ambos casos no pasa nada.
He notado que la actualización de datos es automática cuando un campo esta vinculado a un campo de la base de datos. Pero cuando es, por ejemplo, un campo de texto cuyo contenido depende de criterios que se encuentran en diferentes campos de la base de datos, no pasa nada (lo cual es lógico).
Lo curioso es que si me pongo a navegar en el formulario inicial, sea que retroceda o avance un registro, si regreso luego al registro editado, se muestran los cambios ingresados.
Inclusive se me ocurrió probar esto en el formulario inicial
pretendiendo "emular" un retroceso o avance en los registros y regresar al original luego, pero nada.
¿Cómo podría actualizar los datos en el formulario inicial?
Se trata de lo siguiente. Tengo un formulario que tiene un botón que carga otro formulario que es para la edición de datos. Lo que necesito hacer es que una vez modificados los datos en el formulario de edición, al cerrarlo, los datos en el formulario inicial se refresquen y actualicen. Así lo estoy haciendo:
Cierro el formulario inicial al cargar el formulario de edición. Una vez terminada la edición del formulario, guardo en una variable el ID del registro y cargo el formulario inicial apuntando al registro editado y cierro el formulario de edición. Para esto he creado una variable pública en un módulo de esta forma:
1
2
3
4
Option Compare Database
Public codigopaciente As String
Public codigopacienteeditar As String
La variable CODIGOPACIENTE es la que almacena el ID del registro al momento de cargar el formulario de edición, mientras que la otra variable, CODIGOPACIENTEEDITAR es la que uso para cargar el formulario inicial nuevamente.
En el formulario inicial tengo este código para realizar la acción necesaria (si hay dato en la variable CODIGOPACIENTEEDITAR entonces se va a ese registro, caso contrario va al inicio)
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Form_Load() '***** AL CARGAR EL FORMULARIO
If codigopacienteeditar = "" Then
Me.Requery
DoCmd.GoToRecord , , acFirst
Else
Me.Requery
DoCmd.RunCommand acCmdRefresh
DoCmd.GoToRecord , , acGoTo, codigopacienteeditar
codigopacienteeditar = ""
End If
.... continúa otro código que no tiene nada que ver con el caso
End Sub
He probado primero sin el acCmdRefresh pero en ambos casos no pasa nada.
He notado que la actualización de datos es automática cuando un campo esta vinculado a un campo de la base de datos. Pero cuando es, por ejemplo, un campo de texto cuyo contenido depende de criterios que se encuentran en diferentes campos de la base de datos, no pasa nada (lo cual es lógico).
Lo curioso es que si me pongo a navegar en el formulario inicial, sea que retroceda o avance un registro, si regreso luego al registro editado, se muestran los cambios ingresados.
Inclusive se me ocurrió probar esto en el formulario inicial
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
If codigopacienteeditar = "" Then
Me.Requery
DoCmd.GoToRecord , , acFirst
Else
Me.Requery
DoCmd.GoToRecord , , acGoTo, codigopacienteeditar
codigopacienteeditar = ""
If Not Me.CurrentRecord = 1 Then
DoCmd.GoToRecord , , acPrevious
DoCmd.RunCommand acCmdRefresh
DoCmd.GoToRecord , , acNext
Else
DoCmd.GoToRecord , , acNext
DoCmd.RunCommand acCmdRefresh
DoCmd.GoToRecord , , acPrevious
End If
End If
pretendiendo "emular" un retroceso o avance en los registros y regresar al original luego, pero nada.
¿Cómo podría actualizar los datos en el formulario inicial?
Valora esta pregunta
0