"Comparar usuario y contraseña con la base de datos"
Este ejemplo es muy básico, en el form, un ComboBox y un TextBox.
El combo cargará desde la BD los usuarios registrados en la tabla "Usuario_Sistema"
En el TextBox se introducirá el password que posteriormente será verificado.
Option Explicit
Public Conex As String 'Almacenará datos de conexión
Public RS As ADODB.Recordset 'Recordset
Private Sub Form_Load()
Set RS = New ADODB.Recordset
'Cadena de conexión
Conex = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\BD.mdb;"
'Abrimos la tabla "Usuario_Sistema" con el recordset
RS.Open "Usuario_Sistema", Conex
Combo1.Clear
While Not RS.EOF
'Añadimos el Id y el nombre de usuario al combo1
Combo1.AddItem RS!Id_Usuario_Sistema & " - " & RS!Nombre_Usuario
RS.MoveNext
Wend
RS.Close
End Sub
Private Sub CmdAceptar_Click()
Dim Id As Byte
'Abrimos la tabla
RS.Open "Usuario_Sistema", Conex, adOpenDynamic, adLockOptimistic
RS.MoveFirst 'Nos movemos al primer registro
'Extraemos el ID del usuario del combo1
Id = Mid(Combo1.Text, 1, (InStr(Combo1.Text, "-")) - 2)
'Buscamos el registro correspondiente, usando el ID que conseguimos
RS.Find "Id_Usuario_Sistema = " & Id
'Comparamos el campo contraseña con el password introducido en el textbox
If RS!Contraseña_Usuario = Text1.Text Then
MsgBox "contraseña correcta"
Else
MsgBox "La contraseña es incorrecta..."
End If
RS.Close
End Sub
Como el combo1 solo carga los registros existentes, es obvio que deberas tener un modulo donde se administren los usuarios del sistema, porque este es solo para limitar el acceso a aquellos que estan registrados.
El Id del usuario no es necesario cargarlo en el mismo combo1 junto con el nombre, podes tener un combo2, donde solo se agreguen los Id de cada registro de la tabla y a la hora de necesitar el id para buscar el registro y hacer comparaciones con el password, usar el contenido del mismo.
Medio enrredadito, ¿verdad?
si no entendes algo, ¡avisas!
Espero os sea de ayuda, ¡S4lu2!