Validación de usuarios en access

Caso 1: Tengo un formulario "Menú Principal" en el cual hay un botón "admin" que abre un segundo formulario "Menú de administración".

Tengo una tabla "admins" que contiene los campos "usuario" y "contraseña"

Ahora bien, lo que necesito es que al click del botón "admin" me solicite ingresar usuario y contraseña y los valide con los de la tabla, si es correcto, abra el segundo formulario, de lo contrario mande error.

Caso 2: Tengo el mismo formulario "Menú Principal" en el cual hay un botón "clientes" que abre un segundo formulario "Clientes" en el cual muestro la información de contacto de los clientes (valga la redundancia)
Tengo una tabla "usuarios" que contiene los campos "usuario" y "contraseña"
En este, lo que necesito a diferencia del anterior es que al click del botón "clientes" me solicite igual, ingresar usuario y contraseña y los valide con los de la tabla "usuarios", si es correcto, abra el formulario de clientes, pero ademas me filtre los clientes pertenecientes al usuario que esta ingresando.

Cabe mencionar que en la tabla "clientes" tengo el campo "usuario" el cual esta relacionado con el campo del mismo nombre del la tabla "usuarios"

¿Alguien me podrá ayudar?

1 Respuesta

Respuesta
1

En la página: http://angelessebas.es/

En el apartado supuestos y soluciones ---> Formularios ---> Validar Usuario y Password. Sí es correcto abrir un formulario y que nos muestre el nombre del usuario

Tienes un ejemplo que te puede ayudar.

La variable pública que pasas es la que te servirá para filtrar el formulario clientes.

Me cuentas.

Hola, muchas gracias por tu atención....

Ya empece ha seguir el ejemplo que me explicas, sin embargo no se por que me manda el siguiente error: Error "13" - No coinciden los tipos

A pesar de que mis campos y tablas se llamaban diferente, los cambie para acomodarlos exactamente igual que el ejemplo y aun así me manda el error...

cuando mando a depurar me marca el error en la siguiente linea que pongo en  negritas: 

Private Sub Entrar_Click()

Dim db As Database

Dim rs As Recordset

Set db = CurrentDb

Set rs = db.OpenRecordset("Select Usuario, Contraseña, Nombre from Usuarios where Usuario='" & Form!txtUsuario.Value & "' and Contraseña='" & Form!txtPassword.Value & "'")

If Not rs.EOF Then

vNombre = rs!nombre

DoCmd.OpenForm "Inicio", acNormal

ElseMsgBox "Usuario o password no válidos"

End If

End Sub

en la tabla los tres campos son de texto

Gracias por tu ayuda

El error 13 - No coinciden los tipos no es cuestión del tipo de campo, sino de referencias, si utilizas el access 2003, abres un módulo y en herramientas ---A referencias miras si tienes chequeada la de Microsoft DAO.

Sino también puedes referir el recordset (que es el que suele fallar) como:

Dim rs as DAO.Recordset

Me cuentas.

Hola, disculpa la tardanza en la respuesta, andaba fuera...

Te cuento, que la referencia si estaba habilitada, sin embargo lo hice fue, como mencionaste, referir en el código como:

Dim rs as DAO.Recordset

Y ya con eso funciono a la perfección, te agradezco pues había encontrado algunas referencias en otros lugares demasiado complicadas y tu código esta super practico.

Dado que eso funciono, solo deseaba preguntarte, como o donde debo filtrar la variable publica en el formulario clientes para que me realize ese filtro?

Gracias

En la acción Al cargar del formulario clientes le damos el origen del registro (RecordSource) de esta forma nos abrirá el formulario filtrado por la variable.

Al cargar: Procedimiento de evento ---> pones el código:

Form.RecordSource= Select usuario, campo1, campo2 from clientes where usuario='" & vNombre & "'"

Es decir, seleccionas los campos que estén en el formulario (los he llamado usuario, campo1 y campo2, de la tabla clientes cuyo usuario sea igual a la variable vNombre

Salucos, Angeles

Página supuestos y soluciones en access: http://angelessebas.es/

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas