basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008
-
15 avril 2007 à 15:28
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDerniè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é?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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é.
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDerniè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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDerniè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
Vous n’avez pas trouvé la réponse que vous recherchez ?