Access Usuario y contraseña. Me da error y no se donde

He copiado esta consulta respondida por Julián González al que aprovecho para agradecerle la ayuda (y al resto también) pero me da un error de sintaxis. No sé si tendrá algo que ver pero la tabla está vinculada de SQL SERVER Lo he hecho tal cual indicas.

Un tabla llamada dbo_PLATAFORMA_SUBVENCIONES y tres campos, uno llamado Usuario, otro llamado Contraseña y un tercero llamado Perfil. Le he creado un nuevo formulario llamado FormInicio con dos cuadros de texto que he llamado igual Usuario y Contraseña

Private Sub Comando13_Click()
If nz(dcount("*","dbo.PLATAFORMA_SUBVENCIONES_Usuarios_tbl","Usuario='" & me.Usuario & "' and contraseña='" & me.Contraseña& "'"))=0

Msgbox "Error acceso", 

else

DoCmd.OpenForm "FormPLATAFORMA_SUBVENCIONES"

End if

End Sub

Tienes que crear una tabla, a la que para el ejemplo, llamaremos Usuarios, con, al menos, Usuario y Contraseña, donde guardarás precisamente eso, los usuarios y sus contraseñas de acceso. Luego creas un formulario de inicio(el que se muestre al abrir la base), con dos cuadros de texto, que por comodidad vamos a llamarles igual Usuario y Contraseña. Añádele un botón(no sería necesario, pero prefiero que empieces con él). El el evento Al hacer clic del botón crea un procedimiento de evento y entre Private Sub y End Sub pon

If nz(dcount("*","usuarios","usuario='" & me.usuario & "' and contraseña='" & me.contraseña& "'"))=0 then

Msgbox"No has acertado", vbokonly+vbcritical,"Otra vez será"

Y aquí lo que quieres que haga si no acierta, si cierra la base, si le das más oportunidades, si le lanzas un insulto,...

else

docmd.... Lo que quieres que haga si acierta.

End if

Es decir, cuando pulsas el botón, comprueba si en la tabla Usuarios existen ese usuario con esa contraseña, y que si no acierta con el usuario y la contraseña, haz esto y si acierta haz lo otro.

Combínalo con pulsar Archivo-Opciones-Base de datos actual y desmarca la casilla Mostrar Panel de navegación. Y en esa misma "ventana", en donde pone Mostrar formulario, en el combinado eliges ese formulario, que será el que se mostrará cuando abras la base.

1 respuesta

Respuesta
1

Observo algunas inconsistencias:

1- Si esta vinculado a el servidor debe actualizar todas las tablas vinculadas de tal forma que no tengan el prefijo dbo.

2 Dice que esta vinculado a la tabla dbo_PLATAFORMA_SUBVENCIONES y en la instrucción coloca "dbo.PLATAFORMA_SUBVENCIONES_Usuarios_tbl" lo cual es incoherente.

Ahora, cuando trabaje con tablas vinculadas a servidores, en mi caso utilizo PostgreSQL, trate de no hacer consultas JET, en lo posible haga la consulta directamente en el Servidor, Dcount() es deficiente cuando en el servidor tenemos tablas de gran tamaño.

Disculpe tiene razón. La tabla se llama PLATAFORMA_SUBVENCIONES_Usuarios_tbl

Lo he puesto así y me sigue saliendo error de sintaxis

Private Sub Comando4_Click()
If nz(dcount("*","PLATAFORMA_SUBVENCIONES_Usuarios_tbl","Usuario='" & me.Usuario & "' and contraseña='" & me.Contraseña& "'"))=0

Msgbox "Error acceso",

Else

DoCmd.OpenForm "PLATAFORMA_SUBVENCIONES1"

End If
End Sub

Esta mal el IF observe:

If nz(dcount("*","PLATAFORMA_SUBVENCIONES_Usuarios_tbl","Usuario='" & me.Usuario & "' & " AND contraseña='" & me.Contraseña& "'"))=0

Faltaba " antes del AND

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas