Novice en VB
-
14 nov. 2000 à 13:56
cs_bidouille007
Messages postés257Date d'inscriptionjeudi 11 septembre 2008StatutMembreDernière intervention22 décembre 2012
-
23 janv. 2010 à 04:47
J'ai une BD Access qui tourne derrière mon interface VB mais je souhaite pouvoir me connecter en utilisant des mots de passe qui sont dans une table de ma BD:
table user avec 2 champs login et password.
Comment faire pour que la vérification s'effectue
MERCI
Bonjour,
Au démarage de ton appli VB tu dois lancer une Connexion avec Access.
Quant l'utilisateur valide son mot de passe, tu vérifie si il existe pour le login donné. Ou encore tu cree simplement une fonction qui vérifie le login et password.
Ex (avec MS ADO) :
Function Login(ByVal sUserName As String, ByVal sPassword As String) As Boolean
Dim adoconn As ADODB.Connection
Dim adoRecSet As ADODB.RecordSet
Dim sConnString As String
Dim sSelect As String
Set adoconn = New ADODB.Connection
'Connexion à la BD Access ex : sConnString = "Data Source=C:Mes documentsBD.mdb;User ID=Admin;Password=pwd;".
adoconn.Open sConnString
Set adoRecSet = New ADODB.RecordSet
'Construction de la requête. sSelect "Select * From User Where Login " & sUserName
adoRecSet.CursorLocation = adUseClient
'Sélection de tous les utilisateurs de la table [User] ayant le login fourni par l'utilisateur.
adoRecSet.Open sSelect, adoconn, adOpenForwardOnly, adLockOptimistic, adCmdText
adoRecSet.ActiveConnection = Nothing
adoconn.Close
Set adoconn = Nothing
'Si il existe des Utilisateurs ayant ce login.
If Not adoRecSet.EOF Then
'Recherche si le mot de passe correspond à un de ses utilisateurs.
For i = 0 To adoRecSet.RecordCount If sPassword adoRecSet("Password") Then 'Oui> revoie "True"
Login = True
Exit For
End If
Next i
'Si il n'y a pas d'Utilisateurs ayant ce login revoie "False".
Else
Login = False
End If
adoRecSet.Close
End Function
Si tu a un form de connexion sur le bouton de validation tu fait appel a login comme suit :
Sub cmdOk_Click()
If Login(txtUserName, txtPassword) = False Then
MsgBox "Login ou Mot de passe Incorrecte !", vbExclamation, App.Title
txtPassword.SetFocus
txtPassword.SelStart = 0
txtPassword.SelLength = Len(txtPassword)
Exit Sub
Else
'Ajouter code pour poursuivre le programme.
End If