Bloquear Form y SubForm Access con botón

Tengo un formulario y un subformulario los cuales quiero bloquear desde un botón al cual le asigné el siguiente código:

Private Sub Comando54_Click()
If nEntrada.Locked = True Then
'Desbloquear
nEntrada.Locked = False
nNumId.Locked = False
dFechaEntrada.Locked = False
'Subformulario
F_ENTRADA_DETALLE.Locked = False
Else
'Bloquear
nEntrada.Locked = True
nNumId.Locked = True
dFechaEntrada.Locked = True
'Subformulario
F_ENTRADA_DETALLE.Locked = True
End If
End Sub

El procedimiento funciona, el problema es que se me bloquean todos los registros incluyendo cuando inserto un nuevo registro. Quisiera que sólo se bloqueara el registro actual y los registros del subformulario al dar clic al botón.

1 Respuesta

Respuesta
2

Cuando cambias una propiedad de un control o formulario con un botón, el cambio se aplica siempre a todos los registros del formulario, no solo al del registro activo al pulsar dicho botón.

Lo que puedes hacer es programar el evento "Al activar registro" del formulario y desbloquearlos si estás en un registro nuevo:

If Me.NewRecord Then

'código para desbloquear

End If

Pero eso no te soluciona que si cambias de registro te sigan estando el resto bloqueados.

Para eso se me ocurre que a tu tabla añadas un campo de tipo Sí/No, llamado, por ejemplo "Bloquear", y que en el botón lo que hagas sea marcarlo o desmarcarlo, y en función de eso, poner el código que ya tienes para bloquear o no el registro. Además, le añades la misma comprobación en "al activar registro", de tal forma que al final consigues que al navegar por los registros, si tienen la casilla marcada los verás bloqueados y si no la tienen, desbloqueados.

Un saludo.


¡Gracias! Me sirvió mucho su sugerencia del campo tipo "Si/No", lo hice con un botón de alternar.

Nuevamente gracias, sus respuestas son claras y contundentes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas