Connexion avec identification et mot de passe

Résolu
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008 - 15 avril 2007 à 15:28
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008 - 15 avril 2007 à 21:13
bonjour,

pour acéder à mon application j'ai mis une page d'identification avcec deux champs :
Login et Mot de passe
voici le code de validation de la connexion:

Private Sub cmdOK_Click()
Dim oConn As ADODB.Connection, oRS As ADODB.Recordset
Dim strDB As String, strTable As String

strDB = "C:\pesageo.mdb"
' Nom de la table
strTable = "connexion"
 
' Ouverture connexion vers la base
Set oConn = New ADODB.Connection
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open strDB
 
' Optionnel : Vide la table
'oConn.Execute "DELETE FROM " & strTable
 
' Ouverture recordset sur la table
Set oRS = New ADODB.Recordset
oRS.CursorLocation = adUseClient
oRS.Open strTable, oConn, adOpenDynamic, adLockOptimistic, adCmdTable

Do While oRS.EOF = False
If oRS.Fields("Login") = Login.Text Then
'MsgBox ("Faux login!")
'Else
If oRS.Fields("Mdp") = MDP.Text Then
Form1.Show
Unload Me
End If
End If
oRS.MoveNext
'MsgBox ("Fauw mot de passe!!")
Loop

End Sub

Le problème est que je ne sais pas où mettre le message d'erreur quand il y a un login ou un mot de passe erroné?

Merci d'avance

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 avril 2007 à 20:39
Re
Ok pour les comments, mais ça voulait quand même dire ce que ça voulait dire, bref.
Sinon, ton code devrait fonctionner.
Pour le message d'erreur, il faudra appliquer les modifs que je  t'ai proposé.
3
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
15 avril 2007 à 21:13
je te remercie jack excuses moi je ne suis qu'un débutant t'as raison, j'ai suivi ton conseil et ça marche, voici le code pour les autres (on sait jamais):

Do While oRS.EOF = False
If oRS.Fields("Login") = Login.Text Then
'MsgBox ("Faux login!")
'Else
If oRS.Fields("Mdp") = MDP.Text Then
'Form1.Show
bingoo = True
Unload Me
End If
End If
oRS.MoveNext
'MsgBox ("Fauw mot de passe!!")
Loop
If bingoo = True Then
Form1.Show
Else
MsgBox ("Le login ou le Mot de passe n'est pas correcte, Veuillez les ressaisir correctement!")
Login.Text = ""
MDP.Text = ""
Login.SetFocus
End If

Merci infiniment
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 avril 2007 à 19:23
Salut
Bizarre : Tu ouvres ta DB puis tu commences par supprimer tous les enregistrements de ta table.
Comment veux-tu comparer ensuite ?
Ensuite, à supposer qu'il reste des enregistrements à lire, tu dis que "Si un login correspond au login saisi, tu envoie un message 'Login faux'" : C'est l'inverse, non ?
En fait, il te suffit de :
- Dimensionner une variable Booleenne, bTrouvé par exemple
- Quand tu croises un login correct (Login et password), tu mets ce bTrouvé à True et tu sors de ta Loop avec "Exit Do"
- A la sortie, après le Loop, il te suffit de tester bTrouvé pour savoir si un login correct à été rencontré, sinon, c'est là qu'il faut alerter si non trouvé.

Des dizaines de sources traitent de ce sujet sur le site.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
15 avril 2007 à 19:56
je crois que tu fais pas attention à "      '    " qui se trouve avant le code qui supprime et qui renvoie le message Faux login, revoie le code sinon le voici :
Private Sub cmdOK_Click()
Dim oConn As ADODB.Connection, oRS As ADODB.Recordset
Dim strDB As String, strTable As String

strDB = "C:\pesageo.mdb"
strTable = "connexion"
 
Set oConn = New ADODB.Connection
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open strDB
 
Set oRS = New ADODB.Recordset
oRS.CursorLocation = adUseClient
oRS.Open strTable, oConn, adOpenDynamic, adLockOptimistic, adCmdTable

Do While oRS.EOF = False
If oRS.Fields("Login") = Login.Text Then
If oRS.Fields("Mdp") = MDP.Text Then
Form1.Show
Unload Me
End If
End If
oRS.MoveNext
Loop

End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
15 avril 2007 à 21:01
peut etre qu'on en déphasage.

je n' ai pas dit que mon code ne marche pas mais je voulais insérer le Msgbox d'erreur en cas où le login ou le mot de passe n'existe pas.

Merci pour ton soucis
0
Rejoignez-nous