Como crear contraseña para formularios en access 2007

Estoy haciendo una base de datos en access 2007 para una sección de Talleres de prevención y salud. Resulta que necesito hacerle a 2 formularios una clave de acceso, o sea que para entrar a talleres de psicoorientacion sea una clave diferente a la de acceder a la modificación de datos personales, y crear una clave única en el cual el administrador de la base de datos pueda acceder a ambos formularios con una clave única (o sea que sea una llave maestra para entrar en estos 2 formularios).
Para ello hice un formulario con 2 textbox y un botón de acceso, programe el botón de acceso así:
If usuario = "orientadores" And clave = "paraayudar" Then
DoCmd.OpenForm "Plataformapsicoorientacion", acNormal
Else
MsgBox "el nombre de usuario y la clave es incorrecta, intente de nuevo"
End If
End Sub
Siendo textbox1: usuario y textbox2: clave (ambos para validar la entrada a un formulario llamado "Plataformapsicoorientacion" como te lo dije con anterioridad es uno de los formularios para acceder con clave.

2 respuestas

Respuesta
1
En el código del botón tendrás que hacer referencia al nombre de los cuadros de texto donde se introducen el usuario y la clave:
If Form!textbox1.Value = "orientadores" And Form!textbox2.Value = "paraayudar" Then
Hice la programación como usted me dijo, pero resulta que el nombre del formulario donde esta los 2 textbox se llama clave, use la programación como usted me dijo de dos formas:
Private Sub btnabrir_Click()
If clave!usuario.Value = "orientadores" And clave!clave.Value = "paraayudar" Then
DoCmd.OpenForm "Plataformapsicoorientacion", acNormal
Else
MsgBox "el nombre de usuario y la clave es incorrecta, intente de nuevo"
End If
End Sub
y esta es la otra 
Private Sub btnabrir_Click()
If usuario.Value = "orientadores" And cclave.Value = "paraayudar" Then
DoCmd.OpenForm "Plataformapsicoorientacion", acNormal
Else
MsgBox "el nombre de usuario y la clave es incorrecta, intente de nuevo"
End If
End Sub
Private Sub btnabrir_Click()If usuario.Value = "orientadores" And cclave.Value = "paraayudar" ThenDoCmd.OpenForm "Plataformapsicoorientacion", acNormalElseMsgBox "el nombre de usuario y la clave es incorrecta, intente de nuevo"End IfEnd Sub
Y en ninguna de las dos formas me funciona.
Muchas gracias
Cuando pones Form! Haces referencia al formulario que tienes abierto, si quieres poner el nombre del formulario tendrías que poner Forms! Clave! Usuario. Value
Me explico Forms es la palabra reservada para decir que es una colección, entonces tendrías que poner el nombre del objeto de esa colección (Clave), pero como estás en el formulario Clave no es necesario poner su nombre (aunque también funcionaria) con poner la palabra reservada para el objeto sería suficiente: Form
Es como cuando pones OpenForm lo que le dices es que abra un objeto formulario.
No se si me he explicado, me cuentas.
Muchas gracias. Pero no me funciona lo he programado y no me da... en verdad no se como se hace para que la clave me salga como debe ser para abrir el formulario
Si quieres me mandas la BD (en access 2003 y con pocos registros para que no pese mucho) y la echo un vistazo.
[email protected]
Respuesta
1
Te cuento como lo enfocaría yo.
Tendría una tabla dónde almacenaría el nombre del formulario, el usuario y el password.
Esa tabla tendría distintos registros para cada combinación de formulario-usuario. De esa forma puedo definir, para el mismo usuario, dos passwords distintos para acceder a distintas áreas (cosa que me parece entender que buscas)
En los formularios dónde quisiera establecer esa funcionalidad, en el evento Open, lanzaría el formulario de password, pasando en el OpenArgs, el nombre del formulario que deseo abrir. Ojo, el formulario debe abrirse como acDialog para detener la ejecución del resto del código.
Inciso: requiero una variable global para poder traspasar el valor del formulario password entre formularios. Llemémosla blnErrPassword. Debes definirla en un módulo independiente como Global blnErrPassword As Boolean
Una vez en el formulario de password, controlo que la combinación de usuario y password introducidos + el nombre del formulario (lo tenemos en Me. OpenArgs) a abrir existe en la tabla. Si es así, permito la apertura del formulario (o sea: asigno el valor de la variable blnErrPassword a False). Si la combinación no existe, asigno el valor blnErrPassword a True.
Se cierra el formulario del password y seguimos con el código del evento Open.
Si el valor de la variable blnErrPassword es True (el password es erroneo), cancelo la apertura (Cancel = True), cierro el formulario en cuestion (DoCmd.Close acForm, Me.Name) y me salgo del evento (Exit Sub)
Si el valor de la variable blnErrPassword es False (password correcto)... pues no hago nada, ya que el código seguirá de por si.
Recuerda, antes de llamar al formulario de password, assignar el valor de la variable blnErrPassword a True para que, por defecto, siempre encuentre ese valor. De esa forma evitas, en principio, accesos accidentales. Es lo que podríamos llamar un bloqueo pesimista: por defecto, no se entra.
Espero te sirva

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas