Bloqueo de ciertos campos en formulario access

Tengo un formulario en access en el cual se llevan registros de algunos pacientes y conforme van llegando a re consulta se va complementando la información que se solicita. Lo que necesito es que en la primer cita ciertos campos de control se llenen y luego de ser guardado el formulario estos no puedan modificarse pero solamente si contienen información de lo contrario debiera seguir desbloqueado.

De igual manera que en el momento de editar un campo que ya tenia información me despliegue un aviso de que si esta seguro de editar la información, pero solamente a los campos que tenían anteriormente información no así a los vacíos donde se esta llenando información...

1 Respuesta

Respuesta
1

Para bloquear campos, en el evento "Al Activar Registro" (Form Current) de tu formulario, le generas este código, que tendrás que repetir por cada uno de los campos que quieras bloquear:

Me.Campo1.Locked = Not IsNull(Me.Campo1)

Me.Campo2.Locked = Not IsNull(Me.Campo2)

....

Siendo Campo1, Campo2... los nombres de los campos, que tendrás que cambiar por los que tu tengas.

Para confirmar la edición, puedes hacer esto: En el evento "En datos no guardados" de cada campo del que quieras pedir confirmación, generas este código:

Dim resp As Integer
If Not IsNull(Me.Campo1) Then
resp = MsgBox("¿Está seguro de que quiere editar los datos?", vbYesNo, "CONFIRMACION")
If resp = vbNo Then Cancel = True
End If

Nuevamente cambiando lo que está en negrita por los nombres de tus campos.

Gracias por tu respuesta, funciona a la perfección solo una duda en el evento de datos no guardados.. como van a ser bastantes campos los cuales deben llevar esta condición, debo generar en cada uno de ellos este evento o pueden amarrarse con un OR, 

Ejemplo: 

Dim resp As Integer
If Not IsNull(Me.Campo1)  Or IsNull(Me.Campo2) Or IsNull(Me.Campo3)  Then
resp = MsgBox("¿Está seguro de que quiere editar los datos?", vbYesNo, "CONFIRMACION")
If resp = vbNo Then Cancel = True
End If

Aunque me funcionó a la larga no estoy seguro si es conveniente...

Yo lo que te proponía era que le generaras ese código en el evento "En datos no guardados" de cada campo, lo que implica copiar-pegar ese código en cada uno de ellos

Tu, por lo que comentas, lo estás haciendo en el evento "En datos no guardados" del formulario. En este caso, sí podrías encadenarlos con OR, aunque si son muchos, no sé si hay un límite para encadenar...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas