Connexion login et mot de passe [Résolu]

Signaler
Messages postés
33
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
14 novembre 2004
-
Messages postés
33
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
14 novembre 2004
-
Bonjour tout le monde
Voilà, j'essaie de gérer une connexion et j'ai fait LA boulette qui fait tout planter, mais impossible d'y remédier. Je fais deux parcours de tables dans une base Access, et ceci dans l'évènement clic du bouton Valider, une fois que l'utilisateur a rentré son login et son mot de passe.
Alors voilà, je vous soumets le code, en espérant que quelqu'un puisse m'aider. Pour l'instant, ce code m'oblige à faire Ctrl+Alt+Suppr pour arrêter le prog.
Merci bcp
tapas64

Private Sub Valider_Click()

'Vérifier la saisieIf Login.Text "" Or MDP.Text "" Then
e = MsgBox("Un des champs est vide!", , "Erreur!")
Else

' Avec la table MEDECIN
With Data1.Recordset
'Tant que ce n'est pas le dernier enregistrement
Do While .EOF = False
'Comparer la valeur du champ login avec celle du NomM dans la base
If Login.Text = .Fields("NomM") Then
'Si elles sont égales, mettre la valur du champ login dans une variable temporaire
temp = Login.Text
'et récupérer le code correspondant à ce login
codeMedecin = .Fields("CodeM")
Else
'Sinon lire l'enregistrement suivant
.MoveNext
End If
Loop
End With

'Si à la sortie de la boucle, temp est vide, ça veut dire que le login n'a pas été trouvé
If temp = "" Then
d = MsgBox("Ce login n'existe pas!", , "Erreur!")
Login.Text = ""
MDP.Text = ""
Else 'Si temp n'est pas vide, on compare les mots de passe
'Avec la table Table1
With Data2.Recordset
'Tant que ce n'est pas le dernier enregistrement
If .EOF = False Then
'Comparer la valeur du codeMedecin obtenu avec chacun des codes de la base
If .Fields("CodeM") = codeMedecin Then
'Quand c'est le bon, recupérer le mot de passe correspondant à ce code
motDePasse = .Fields("mdp")
Else
'Sinon, passer à l'enregistrement suivant
.MoveNext
End If
Else
MsgBox "fin de la table"
End If
End With

'Si à la sortie de la boucle, motDePasse est vide, c'est que ce login n'a pas de mdp
If motDePasse = "" Then
b = MsgBox("Erreur dans la base de données!", , "Erreur!")
Else
'Sinon, on peut comparer maintenant le mot de passe récupéré
'avec celui saisi dans le champ mdp de la fenêtre
If MDP.Text = motDePasse Then
'Ouvrir la fenêtre du menu principal
Fenetre2.Show
'Décharger la fenêtre de connexion
Unload Fenetre1
Else
c = MsgBox("Mauvais mot de passe", , "Erreur!")
MDP.Text = ""
End If
End If

'Fin du If temp=""
End If

'Fin du If "Vérifier la saisie"
End If

End Sub

3 réponses

Messages postés
35
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
27 juin 2008

Tu peux arreter ton prog en faisant crtl+arêt défil
dans un premier temps a la place de crtl+alt+supppr
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 179 internautes nous ont dit merci ce mois-ci

Messages postés
35
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
27 juin 2008

je crois que ta premiere boucle ne va lire que le premier enregistrement

With Data1.Recordset

Do While .EOF = False

If Login.Text = .Fields("NomM") Then
temp = Login.Text
c odeMedecin = .Fields("CodeM")
End If
.MoveNext
Loop
End With

test cette partie de code
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 179 internautes nous ont dit merci ce mois-ci

Messages postés
33
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
14 novembre 2004

Merci bcp, ça fait encore un peu n'importe quoi mais ça ne plante plus, c'est en bonne voie ;-)
tapas64