Access - usuario y contraseña

 
Vista:

usuario y contraseña

Publicado por jordi (11 intervenciones) el 26/02/2006 20:07:47
Hola a todos.
¿como hago para crear un formulario que solicite usuario y contraseña y que funcione?, por favor ayudadme.
Lo he intentado con el codigo siguiente pero me da mensaje de error y/o "esta accion anula la anterior".
tabla = idusuarios, campos =nombre, contraseña
formulario= pas, textbox independiente usuario , textbox independiente contra, boton validar.
CODIGO:
Option Compare Database
Private intloginattempts As Integer
Private Sub Form_Open(Cancel As Integer)
Me.usuario.SetFocus
End Sub
Private Sub usuario_AfterUpdare()
Me.contra.SetFocus
End Sub
Private Sub validar_Click()
If IsNull(Me.usuario) Or Me.usuario="" Then
MsgBox "Por favor entre su nombre de usuario",VbOkOnly,"datos requeridos!"
Me.usuario.SetFocus
Exit Sub
End If
If IsNull(Me.contra) Or Me.contra="" Then
MsgBox "Introduzca su contraseña",VbOkOnly,"dato requerido!"
Me.contra.SetFocus
Exit Sub
End If
' (en la linea siguiente es donde access me genera el error)
If Me.contra.value=DLookup("contraseña","idusuarios=" & Me.usuario.value) Then
Me.usuario.value
DoCmd.Close acForm, "pas",acSaveNo
Else
MsgBox "contraseña incorrecta",VbOkOnly;"error!!"
intloginattempts=intloginattempts+1
If intloginattempts=3 Then
MsgBox "Ha introducido la contraseña erroneamente 3 veces. No Tiene acceso a la base de datos y se cerrara la aplicacion",VbCritical,"ACCESO DENEGADO!! "
Application Quit
End If
End Sub

Por favor, si alguien da con el error, que me lo diga porque yo ya no se que mas hacer.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:usuario y contraseña

Publicado por Enrique (1299 intervenciones) el 27/02/2006 11:28:59
Hola Jordi:
Por lo pronto tienes un error en esta línea:
If Me.contra.value=DLookup("contraseña","idusuarios=" & Me.usuario.value) Then

Fíjate que aquí tratas de comparar la contraseña de la Tabla con el nombre de usuario del Formulario (primer error), además de que no indicas el campo del criterio de búsqueda (segundo error) y por último quieres usar Me.usuario como un campo numérico al NO ponerlo entre comillas simples (tercer error).

Prueba a cambiar a esta otra:
If Me.contra = DLookup("contraseña","idusuarios", "contraseña='" & Me.contraseña & "'") Then
DoCmd.Close acForm, "pas",acSaveNo
Else
........
........
End if
En Dlookup primero tienes que poner el Campo a buscar, después la Tabla y luego si hubiera que filtrar por algún Campo, en tu caso contraseña, pones ese campo y lo comparas con el del formulario.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usuario y contraseña

Publicado por Enrique (1299 intervenciones) el 27/02/2006 12:56:22
Hola de nuevo Jordi:
Olvidate de lo que te he dicho antes porque no funciona, he tenido un despiste. Usa mejor este Evento que es el que yo uso en mis aplicaciones y si funciona correctamente. Ponle al formularios un botón Validar y otro botón Cancelar.

'MARCA LA REFERENCIA: Microsoft DAO 3.6 Object Library
Option Compare Database
Dim Contador As Integer
Option Explicit
---------------------------------------------------------------
Private Sub Form_Load()
Contador = 0
End Sub
--------------------------------------------------------------
Private Sub Validar_Click()
Dim rst As DAO.Recordset, Usuar As Variant
If IsNull(Usuario) Or Usuario = "" Then Usuario.SetFocus: Exit Sub
If IsNull(Contra) Or Contra = "" Then Contra.SetFocus: Exit Sub
Set rst = CurrentDb.OpenRecordset("Select Nombre, Contraseña From IdUsuarios Where Nombre like '" & Me.Usuario & "'")
If rst.EOF Then
MsgBox "Usuario inexistente.", vbInformation, " Error"
Usuario = ""
Usuario.SetFocus: Exit Sub
Else
Usuar = rst!Nombre
End If
'En lo que sigue controlamos que se corresponda el Usuario con su Contraseña:
If rst!Contraseña = Me.Contra And Me.Usuario = Usuar Then
rst.Close: Set rst = Nothing
DoCmd.Close acForm, "pas" 'Coinciden Usuario y Contraseña y se cierra Pas
Else
MsgBox "Contraseña incorrecta.", vbInformation, " Error"
Contador = Contador + 1
If Contador = 3 Then
DoCmd.Close acForm, "pas"
MsgBox "No está autorizado a utilizar esta aplicación.", vbCritical, " Tres intentos fallidos"
Application.Quit
Else
Contra = ""
Contra.SetFocus: Exit Sub
End If
End If
End Sub
--------------------------------------------------------------
Private Sub Cancelar_Click()
Application.Quit
End Sub
--------------------------------------------------------------
Usuar es una variable que recoge de la tabla el Nombre del Usuario cuando el Nombre tecleado es correcto, para luego efectuar la comparación y cierre el formulario Pas sólo cuando ambos coincidan.
Si ves que no te sale, dimelo y te envio un ejemplo.
Saludos
enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usuario y contraseña

Publicado por jordi (11 intervenciones) el 27/02/2006 16:14:09
Hola Enrique:
En primer lugar, darte las gracias por tus respuestas, probare a hacer lo que me dices y te dire (aunque no podra ser hoy) si me funciona corectamente.
Tambien agradezco tu ofrecimiento para enviarme un ejemplo y te agradeceria ya desde ahora mismo si me pudieras hacer el favor de enviarmelo, mas que nada para salir ganando tiempo pues esta base de datos ya deberia de tenerla puesta en funcionamiento.
Gracias de nuevo tanto a ti como a todos.
Un saludo.
Jordi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usuario y contraseña

Publicado por Jordi (11 intervenciones) el 27/02/2006 17:40:22
Hola de nuevo Enrique:
¿podrias explicarme por favor cuando dices "MARCA LA REFERENCIA: microsoft DAO 3.6 object library" a que te refieres?.
Supongo que debes de referirte a la creacion del formulario por medio de Visual Basic o visual studio y no estoy muy puesto en estas lides y asi de entrada me he quedado bloqueado en cuanto a ideas e interpretacion de lo que quieres decirme.
¿puedes aclararmelo?....... Gracias de nuevo y disculpa mi ignorancia.
Un saludo.
Jordi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usuario y contraseña

Publicado por Enrique (1299 intervenciones) el 27/02/2006 18:26:18
Hola Jordi:

Como me imagino que estarás usando Access 2000 o superior, debes de saber que a partir de estas versiones, cuando creas una base de datos nueva, entra marcada por defecto la Referencia de ADO: Microsoft ActiveX Data Objects 2.1 Library pero NO entra marcada la de DAO que es la que usa mi Evento, por eso te indico que la marques. Para hacerlo, cuando estés en la ventana de código de cualquier formulario, Pulsas Herramientas y luego Referencias, verás que se abre una lista y en ella al principio, entre otras verás marcada la Referencia de ADO (puedes dejarla marcada o quitarla, es indiferente) y busca por órden alfabético la Referencia: Microsoft DAO 3.6 Object Library, la marcas y ya funcionará mi Evento porque sin esa referencia te daría error.

Esto no tiene nada que ver con la aplicación Microsoft Visual Basic ni Visual Studio sino con VBA (Visual Basic para Aplicaciones) que usa Access.

Más tarde pondré aquí mismo un enlace con el ejemplo de una ventana de validación de Usuarios y Contraseñas para que se la descargue quien quiera.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usuario y contraseña

Publicado por Jordi (11 intervenciones) el 27/02/2006 19:22:37
Hola de nuevo Enrique.
No sabes cuanto te agradezco todo el rato que me estas dedicando ya que como te dije antes, esta base de datos ya tendria que estar en funcionamiento.
Efectivamente, trabajo con la suite de office XP y la version de access es equivalente a access 2002.
¿sabes?, ni tan siquiera sabia que existia esa propiedad ya que no soy muy dado al "chafardeo" a no ser estrictamente necesario y es la primera vez que me he encontrado en este caso.
Lo mejor de todo es que cuando he accedido a toda esa lista, ya estaba seleccionada esa opcion junto con unas cuantas mas, es decir que seguro que funcionara. Luego te escribo que tal me ha ido.
Repito mis mas sinceras y humildes gracias por todo.
un cordial saludo.
Jordi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usuario y contraseña

Publicado por Enrique (1299 intervenciones) el 27/02/2006 20:08:37
Bueno Jordi, me alegro que hayas aprendido algo que no sabías, de todas formas antes prometí que iba a poner un ejemplo y no voy a cumplir lo que he dicho porque son DOS ejemplos:

http://es.geocities.com/ensolva/Descargas/Varios/EjemploConTablaInterna.zip

http://es.geocities.com/ensolva/Descargas/Varios/EjemploConTablaExterna.zip

El primer ejemplo con Tabla Interna es muy vulnerable porque la Tabla usuarios está en la misma Base y cualquiera con mínimos conocimientos la abriría y vería las contraseñas.

En el segundo ejemplo ya es más complicado porque la Tabla Usuarios está en una Base aparte de nombre Usuarios.mdb y debe de estar en la misma carpeta que la Base Aplicación. Aquí la tabla usuarios está oculta y para desocultarla hay que saber la contraseña de "Administrador" que es un usuario más dentro de la tabla (no uso para nada la seguridad de Access). Los usuarios y contraseñas son los mismos en ambos ejemplos; en el ejemplo con base externa hay un Leeme.txt que dice la contrasela del "Administrador".

Debo decir honestamente que el código que se usa para ocultar/desocultar la Tabla de la Base usuarios, es de uno de nuestros compañeros de este Foro, concretamente de Chea, por lo que aprovecho para agradecérselo y se encuentra en el Módulo1 de la base usuarios que está protegido, el resto es mío aunque usando ADO para acceder a la base externa que ya estaba inventado hace tiempo.

Saludos y hasta la próxima.
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usuario y contraseña

Publicado por Freddy Alarcon (1 intervención) el 10/06/2011 20:24:33
Hola Enrique,,

He visto tu comentario y me interesa mucho esos ejemplos, pero ya no estan disponibles en esa pagina, me podrias dar otro link para bajarlos..

gracias,

Freddy Alarcon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usuario y contraseña

Publicado por Jordi (11 intervenciones) el 27/02/2006 20:42:17
Hola Enrique:
Otra vez gracias por todo y decirte que SI funciona perfectamente bien el codigo que posteaste.
ahora me bajare esos ejemplos para poder verlos y es cierto que la tabla con los nombres y contraseñas esten fuera de la base de datos en si misma por seguridad.
Te agradezco de corazon toda esa informacion y de nuevo muchisimas gracias a ti y a todos por lo mucho que aprendo cada dia y lo mucho que me enseñais.
Un cordial saludo.
Jordi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usuario y contraseña

Publicado por Antonio (81 intervenciones) el 03/10/2006 09:41:30
Hola Jordi,

Creo que has me puedes ayudar. Tengo una base de datos y cada trabajador debe solo tocar, un formulario y solo uno, de modo que pensaba poner contraseñas a cada formulario, para que ningún otro pueda aceder a los datos de otros.
Pero es que no tengo ni idea de como puedo hacer eso, he visto que si se puede pero ya te digo es imposible.
¿Me puedes ayudar?

Muchas gracias por adelantado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar