Acceso otra vez

Hola de nuevo experto,
Tengo un problema con el tema del acceso a la base de datos por usuario y contraseña. Acepta cualquier usuario (incluso no registrados), pero solo deja entrar con una contraseña, la del primer usuario o la del usuario que primero accede a la base de datos. No hemos hecho ningún cambio desde los últimos que te comenté (cambiar comillas y el = de [usuario]) y funcionaba perfectamente.
El código ha quedado así:
Dim strSQL As String
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "INICIO"
If IsNull(DLookup("Contraseña", "Usuarios", "[Usuario] & Usuario.Value")) Then
    MsgBox "Usuario o contraseña incorrecto"
Else
    If Contraseña.Value = DLookup("Contraseña", "Usuarios", "[Usuario] & Usuario.Value") Then
        strSQL = "INSERT INTO [Registro de visitas] (Usuario, FechaEntrada, HoraEntrada) VALUES ('" & Usuario.Value & "','" & Date & "','" & Time() & "')"
        CurrentDb.Execute strSQL, dbFailOnError
        DoCmd.OpenForm stDocName, , , stLinkCriteria
        DoCmd.Close acForm, "Usuarios1"
    Else
        MsgBox "Usuario o contraseña incorrecto"
    End If
End If
Por cierto, aunque no se le de el usuario y contraseña, se puede acceder a la base desde el menú archivo, ya sé que se le pueden quitar opciones en Herramientas -->Inicio, pero ¿no se puede hacer de otra forma para que el acceso sea "seguro"?
Muchas gracias otra vez, seguro que me puedes echar otra mano.
Saludos,

1 respuesta

Respuesta
1
Es que la solución que le diste no me pareció muy buena:
Cambia esto:
If IsNull(DLookup("Contraseña", "Usuarios", "[Usuario] & Usuario.Value")) Then
Por esto:
If IsNull(DLookup("Contraseña", "Usuarios", "[Usuario]='" & chr(34) & Usuario.Value & Chr(34) & "'")) Then
Y:
If Contraseña.Value = DLookup("Contraseña", "Usuarios", "[Usuario] & Usuario.Value") Then
por esto:
If Contraseña.Value = DLookup("Contraseña", "Usuarios", "[Usuario]='" & chr(34) & Usuario.Value & Chr(34) & "'")) Then
Perdona, es así.
If IsNull(DLookup("Contraseña", "Usuarios", "[Usuario]=" & Chr(34) & Usu.Value & Chr(34))) Then
If Contraseña.Value = DLookup("Contraseña", "Usuarios", "[Usuario]=" & Chr(34) & Usu.Value & Chr(34))) Then
Hoy estoy mal... es Usuario en lugar de Usu

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas