Bloquear desbloquear/formularios y que quede guardado access

Soy nuevo en access de venezuela he diseñado unos formularios con cuadros de texto etc lo que queria eran que se bloquearan al precionar un boton eso lo realize con el sig comando ejemplo.

Private Sub Completado_Click()
Me.[DIRECCION DONDE SE ENCUENTRA EL FALLECIDO_2].Enabled = False
Me.[DIAGNOSTICO DE MUERTE_2].Enabled = False
Me.[NOMBRE PERSONA CONTACTO_2].Enabled = False
Me.[TELEFONO CONTACTO 1].Enabled = False
Me.[TELEFONO CONTACTO 2].Enabled = False
Me.[QUIEN REPORTA_2].Enabled = False
Me.[TELEFONO REPORTANTE_2].Enabled = False
Me.[PARENTESCO DEL REPORTANTE].Enabled = False
Me.[OTORGAR SERVICIO].Enabled = False
Me.[PENDIENTE POR RECAUDO].Enabled = False
Me.[CUAL RECAUDO_2].Enabled = False
End Sub
Me funciona perfecto pero al momento de cerrar el formulario y volverlo a abrir esta activo nuevamente y lo que quiero es que esos campos se queden bloqueados ya que es un registro de clientes y no quiero que se editen mas claro quiero que eso sea solo en ese registro activo si habro otro pues no deberia de aparecer bloqueado sera que alguien me echa una manita con la continuacion del codigo...
Y muchas gracias

Valora esta pregunta

0

2 respuestas

Respuesta
1

¿Pregunta? ¿Tiene qué ser necesariamente un botón de comando? Verás. Puedes poner en la tabla origen del formulario un campo llamado, por ejemplo, Aux( tipo Si/No). Agrégalo al formulario y se pondrá como casilla de verificación, y en sus propiedades-eventos-Después de actualizar, le puedes poner

For Each Control In Form.Controls
If Control.ControlType = acTextBox And Aux = -1 Then
 Control.Enabled = False
ElseIf Control.ControlType = acTextBox And Aux = 0 Then
Control.Enabled = True
End If
Next

Así, cuando pulses en la casilla de verificación te bloquea todos los cuadros de texto.

Luego, en el evento, Al activar el registro del formulario pones exactamente lo mismo

Y cuando vaya a un registro "mirará" si está marcada la caslla. Si lo está, te bloquea todos los cuadros de texto y si no está te los deja "operativos"

Respuesta

Bryger: En el Form_Load (Al cargar del Formulario) Para bloquear todo los controles, le pones:

Me.AllowEdits = False

Te ahorras lo de arriba.

Y recuerda que al dar de alta un registro has de desbloquearlos, bloquearlos de nuevo al guardar. Se pueden hacer varias combinaciones. Mis saludos >> Jacinto

¿Lo qué quiero en si es que al ingresar al formulario este desbloqueado y la única manera que se bloqueen todos los campos es presionando un botón y eso ya lo realiza el problema es que cuando vuelvo a abrir el mismo cliente aparece todo desbloqueado que puedo hacer para que ese registro se guarde el bloqueo?

Bryger: Ahora estoy un poco confundido.

1.- Si lo que quieres que no se cambien datos, no necesitas el Enabled, la Propiedad adecuada es Locked.

2.- Si lo que quieres es Bloquear "Un" Cliente concreto y conoces su Identificador >> Supongamos que es el Nº 50

En el Form_Current (Al activarRegistro)

Private Sub Form_Current()
If Me.IdCliente = 50 Then
     Me.AllowEdits = False
Else
     Me.AllowEdits = True
End If
End Sub

3.- Siempre puedes llamar a ese Procedimiento que ya tienes desde otro sitio, con:

Call Completado_Click

Si no es exactamente eso lo que necesitas, me comentas. Mis saludos >> Jacinto

te explico tengo este formulario que viene de una consulta el mismo arroja datos de un cliente cuando alguien lo termine debe de presionar el botón terminado y el mismo se debe de bloquear los campos que según con el código aplique

Private Sub Completado_Click()
Me.[DIRECCION DONDE SE ENCUENTRA EL FALLECIDO_2].Enabled = False
Me.[DIAGNOSTICO DE MUERTE_2].Enabled = False
Me.[NOMBRE PERSONA CONTACTO_2].Enabled = False
Me.[TELEFONO CONTACTO 1].Enabled = False
Me.[TELEFONO CONTACTO 2].Enabled = False
Me.[QUIEN REPORTA_2].Enabled = False
Me.[TELEFONO REPORTANTE_2].Enabled = False
Me.[PARENTESCO DEL REPORTANTE].Enabled = False
Me.[OTORGAR SERVICIO].Enabled = False
Me.[PENDIENTE POR RECAUDO].Enabled = False
Me.[CUAL RECAUDO_2].Enabled = False
End Sub

No tengo ningún problema en colocar cada campo pues me funciona de maravillas pero cuando lo cierro y busco nuevamente el cliente esta desbloqueado y se puede editar todo nuevamente.

¿Lo qué quiero es que este formulario activo se quede bloqueado?

Bryger: Prueba ésto y me comentas >>

Private Sub Form_Current()
If Not Me.NewRecord Then
   Me.allowEdits = False
Else
   Me.AllowEdits = True
End If
End Sub

Acuerdate de Activar el Procedimiento de Evento.

Y sigo opinando que no necesitas el Código de arriba. Si lo quieres conservar, no pasa nada.

Mis saludos >> Jacinto

¿Esto lo coloco en el botón?

Listo ya entendí pero mira lo que sale

Bryger, eso lo has de copiar como un Procedimiento más.

Lo copias y lo pegas en el mimo sitio donde tienes tu código.

Entonces con el Formulario en vista de diseño, te vas Diseño >> Propiedades >> Eventos, y en la primera línea verás Al activar Registro .

Hay una Flecha que abre un desplegable. Activas [Procedimiento de Evento]

Saludos >> Jacinto

Has puesto dos veces End Sub, borra una >> Jacinto

Listo pero no realiza alguna función voy a guindar la app aquí

te lo voy a enviar por correo

De acuerdo Bryger. Un saludo >> Jacinto

Bryger: Hasta el momento no he recibido ningún fichero tuyo. Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas