Como abrir un formulario y bloquear un campo(cuadro combinado) mediante código

Mediante código abro un formulario, como dar siguiente instrucción para que bloquee un campo

Respuesta
1

Jesús: Supongo que ya tienes el procedimiento Form_Load.

Incluye ésta línea de Código

Me.NombreDeTuCombo.Locked = True

Si lo quieres desbloquear con un Botón o en otra zona del Códig, igual pero =False

Saludos y feliz fin de año >> Jacinto

Muchas gracias, eso ya lo probé, te paso el código entero que tengo, no me funciona, el bloquear registro

Dim contra As String

If Nz(Me.Usuario, "") = "" Then
MsgBox "Campo Usuario está vacio", vbInformation, "vacio"
Me.Usuario.SetFocus
ElseIf Nz(Me.Contraseña, "") = "" Then
MsgBox "contraseña vacía", vbExclamation, "vacio"
Me.Contraseña.SetFocus
Else

If Nz(DLookup("contraseña", "profesores", "id=" & Me![Usuario]), "") <> "" Then
contra = DLookup("contraseña", "profesores", "id=" & Me![Usuario])
End If

If contra <> Me.Contraseña Then
MsgBox "CONTRASEÑA INCORRECTA", vbCrítical, "Ok"
Else
If Nz(DLookup("privilegio", "profesores", "id=" & Me![Usuario]), "") = 1 Then
DoCmd.OpenForm "Panel de Control"
Else
DoCmd.OpenForm "Calendario", , Me.Profesor.Locked = True
End If
End If
End If

Jesús: Antes de seguir haciendo cábalas por mi parte>>

1.- ¿El Id y el Usuario >> Son Numéricos o Texto?

2.- ¿Combo qué quieres Bloquear >> En que Formulario está?

3.- Entiendo que el Combo se llama Profesor

Hago una aproxiación: Intentas que si en el Formulario de validación de Usuario y Contraseña, además de ser correctos, que siel Privelegio es 1 abra Panel de Control, ¿y si no es así que abra el calendario con el Combo Profesor bloqueado?

Espero tus aclaraciones. Saludos >> Jacinto

1 si, son numéricos

2 Bloquear el combo profesores para que cada uno solo pueda ver sus datos y no los de los demás, no puedo bloquear desde el propio campo, ya que el coordinador si debe  ver el de todos

3 el combo se llama profesor, si

Muchas gracias

Jesús: Disculpa mi insistencia, pero en el apartado 2 te preguntaba>>

2.- ¿Combo qué quieres Bloquear >> En que Formulario está?

Un saludo >> Jacinto

en un formulario que se llama calendario

Jesús: Este trozo de código

If Nz(DLookup("Privilegio", "Profesores", "id=" & Me![Usuario]), "") = 1 Then
DoCmd.OpenForm "Panel de Control"
Else
DoCmd.OpenForm "Calendario", , Me.Profesor.Locked = True
End If

Lo sustituyes por:

If Nz(DLookup("Privilegio", "Profesores", "id=" & Me![Usuario]), "") = 1 Then
DoCmd.OpenForm "Panel de Control"
Else
Dim Frm As Form
DoCmd.OpenForm "Calendario"
Set Frm = Forms!Calendario.Form
Frm.Profesor.Locked = True

Set Frm = Nothing
End If

Otra Forma de hacerlo, sería en el Form_Load del Própio Formulario Calendario, usando una Variable Publica y usando un Bucle, pero para construir el código tendría que ver la BD.

Y otro tema es que con el código que tenías y con éste que te envío, el Calendario se abrirá por un Nombre que no necesariamente ha de ser el deseado.

Si ves que no logras resolverlo, y necesitas más ayuda, pones un enlace aquí con tu BD y datos inventados o bien si no la quieres hacer pública por algún motivo, igualmente con datos ficticios me la puedes enviar a [email protected]

Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas