Connexion avec identification et mot de passe [Résolu]

Messages postés
335
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2008
- - Dernière réponse : 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
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
3
Merci
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é.

Dire « Merci » 3

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

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

Commenter la réponse de cs_Jack
Messages postés
335
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2008
3
Merci
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

Dire « Merci » 3

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

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

Commenter la réponse de basamir
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
335
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2008
0
Merci
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
Commenter la réponse de basamir
Messages postés
335
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
8 mars 2008
0
Merci
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
Commenter la réponse de basamir