Connexion login et mot de passe

Résolu
tapas64 Messages postés 33 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 14 novembre 2004 - 10 juin 2004 à 10:44
tapas64 Messages postés 33 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 14 novembre 2004 - 10 juin 2004 à 14:35
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

cs_fofolle Messages postés 35 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 27 juin 2008
10 juin 2004 à 10:54
Tu peux arreter ton prog en faisant crtl+arêt défil
dans un premier temps a la place de crtl+alt+supppr
3
cs_fofolle Messages postés 35 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 27 juin 2008
10 juin 2004 à 10:58
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
tapas64 Messages postés 33 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 14 novembre 2004
10 juin 2004 à 14:35
Merci bcp, ça fait encore un peu n'importe quoi mais ça ne plante plus, c'est en bonne voie ;-)
tapas64
0
Rejoignez-nous