Bloquear Campos de access si se encuentran con información access

Soy nueva en la web y tengo una la siguiente pregunta:
Tengo un base de datos y quiero que al ingresar los campos que se consulten que son son los que tienen información la rutina bloque los campos para evitar que sean modificados, y al dar clic en el botón nuevo se habiliten ya que es un campo nuevo, sera que es posible.

2 Respuestas

Respuesta
1

Ximena: Supongo que al menos conocerás algo de VBA y de los Eventos.

Además supongo que estás en un Formulario de Entrada y Visualización de datos.

Si eso es así, programa el Evento Al Acivar Registro (Form_Current) del Formulario y le pones éste código.

Private Sub Form_Current()
Dim Ctrl As Access.Control
If Me.NewRecord Then
   For Each Ctrl In Me.Controls
     If Ctrl.ControlType = AcTextBox Or Ctrl.ControlType = acComboBox Or Ctrl.ControlType = acCheckBox Then
         Ctrl.Locked = False
     End If
   Next Ctrl
Else
   For Each Ctrl In Me.Controls
     If Ctrl.ControlType = AcTextBox Or Ctrl.ControlType = acComboBox Or Ctrl.ControlType = acCheckBox Then
         Ctrl.Locked = True
     End If
   Next Ctrl
End If
End Sub

Traducido a lenguaje llano le decimos que si es un Nuevo Registro, desbloquee los Controles y si no lo es, que los bloquee. Si copias y pegas éste código, no te olvides de activar el Evento en la Propiedades >> Eventos >>Al Activar Registro >>[Procedimiento de Evento] Un saludo > Jacinto

Respuesta

¿Hablas de campos o registros? Es que, desde "ingresar los campos... no he entendido nada.

Si vas a escribir algo en un cuadro de texto, al que llamaremos NombreCliente, de un formulario y una vez que lo hayas escrito quieres que no se pueda modificar basta con poner, en sus propiedades-eventos-Después de actualizar

nombrecliente.locked=true

Pero yo pondría en el evento Al activar el registro del formulario

If IsNull([NombreCliente]) Then
NombreCliente.Locked = False
ElseIf Not IsNull([NombreCliente]) Then
NombreCliente.Locked = True
End If

Es decir, que si el control NombreCliente no tiene valor el cuadro está desbloqueado para que escribas lo que quieras. Si luego vuelves a ese registro y quieres modificarlo, como ya tiene valor, estará bloqueado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas