** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Formulario Bloqueado.
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoFormulario Bloqueado.

 Responder Responder
Autor
Mensaje
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 690
Enlace directo a este mensaje Tema: Formulario Bloqueado.
    Enviado: 09/Abril/2024 a las 15:05
Hola y buenas tardes.
Una consulta que lanzo al foro.
Sobre un formulario, tengo un campo de tipo CheckBox, que al marcarlo me indica que ese registro está completo en cuanto a sus datos (tramitación de un expediente). Por seguiridad, le he puesto código al formulario para que al marcarlo (Finalizado_box), ese registro se quede bloqueado y no se puedan modificar los datos. 
He hecho algo así y funciona:

Private Sub Form_Current()

If Not IsNull(Me.Finalizado_box) Then
Me.AllowEdits = Not Me.Finalizado_box
Else
Me.AllowEdits = True
End If
End Sub

Lo que ocurre, es que si quiero modificar algo, por cualquier razón, debo quitar la marca en el check, pero no me deja, porque lo he bloqueado; he intentado quitar esta propiedad a este campo concreto, pero no me sale, no me deja desmarcarlo. 
Lo realizado es:

Private Sub Form_Current()

If Not IsNull(Me.Finalizado_box) Then
Me.AllowEdits = Not Me.Finalizado_box
Finalizado_box.Locked = True
Else
Me.AllowEdits = True
End If
End Sub

Algo deebo estar haciendo mal... ¿alguna sugerencia?
Gracias por adelantado y salu2
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1536
Enlace directo a este mensaje Enviado: 09/Abril/2024 a las 22:07
Si bloqueas el formulario, es lógico que no puedas modificar el registro. Posibilidades, creo que hay varias. Algunas que se me ocurren:

1. Puedes usar la propiedad Locked de los controles que no quieras que se puedan modificar, en vez de bloquear el formulario.

2. Puedes poner un botón de comando, para que cuando lo pulsen, desbloquees el formulario y le quites la marca al checkbox. Incluso puedes sacar un mensaje pidiendo confirmación, o una contraseña, o...

3. Aunque esté bloqueado, puedes revisar si funciona el evento Al hacer click del checkbox. Si funciona, puedes desbloquear el formulario y desmarcar entonces la casilla.

Revisa también la posibilidad de borrar el registro (AllowDeletions), no sea que no te lo puedan modificar, pero por error te lo borran.
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 690
Enlace directo a este mensaje Enviado: 10/Abril/2024 a las 08:20
Incluso se me ocurre una cuarta opción: Un acceso a una consulta donde te aparezca el nº de registro y el check y ahí poder desmarcarlo con lo que liberaría el bloqueo.

La opción 1 la descarto porque son muchos los controles que tengo y, por eso, bloqueo el formulario.
La opción 2 es posible pero al igual que la consulta que propongo es recurrir a algo extra más.
La opción 3 de el evento al hacer click del checkbox no va, al estar bloqueado.

Realmente lo que intento es que se bloquee el formulario al marcar el check con la excepción de ese campo que se marca y... no lo veo.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 10/Abril/2024 a las 12:45
No lo ves... porque no se puede (hasta dónde a mi me consta). Si se impiden las ediciones, se impiden para todo. 

La opción más fácil de implementar con menos trabajo es la segunda aunque yo utilizo la primera casi siempre.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
maserrano Ver desplegable
Colaborador
Colaborador


Unido: 02/Abril/2014
Localización: España
Estado: Sin conexión
Puntos: 690
Enlace directo a este mensaje Enviado: 10/Abril/2024 a las 14:53
Ok.
Me decanto por el botoncito...

Private Sub Btn1_Click()
Me.Finalizado_box = False
End Sub

... y se acabó la historia. El botón me quita la marca, se hace el cambio necesario y se vuelve a bloquear con la marca.

Lo curioso es que creo que es la primera vez que en este sitio me dicen que "algo" no se puede hacer.
Por mi parte se puede cerrar el hilo entonces.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 10/Abril/2024 a las 15:47
Dios hace milagros, pero ni siquiera Él puede hacer un círculo cuadrado. Wink

Si tú bloqueas un formulario, estás bloqueando el conjunto, no sus partes. Como te dijo Xavi, lo suyo es bloquear/desbloquear los elementos que te interesen, aunque te dé más trabajo.

Un saludo.


Editado por Mihura - 10/Abril/2024 a las 15:47
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable