VBA:Un code qui ne marche pas!

sergeszebe Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   -  
sergeszebe Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   -
salut a tous!
voila mon pb:
T_User(login,mot_de_passe)
je voudrait que sur clic au boutons connexion,si le login et le mot de pase sont correct,le formulaire FM_Evaluation s'ouvre sinono au bout d'une 3eme tentitive le programme s'arrete.
mais il me dit erreur:type definie par l'utilisateur non definie au niveau de dim bd as database

Private Sub connexion_Click()
Dim Sql As String
Dim rs As Recordset
Static i As Byte
Dim bd As Database ----> c ici l'erreur

Set rs = bd.OpenRecordset(Sql)
Sql = "SELECT login,[mot_de_passe] FROM T_User WHERE login = '" & Me.txt_user & "' AND [mot_de_passe]='" & Me.txt_pass & "';"

If Not rs.EOF Then
DoCmd.OpenForm "FM_Evaluation", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "F_CONNEXION"
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
End If
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
DoCmd.Quit
End If
Me.Requery
End Sub

24 réponses

Lust Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   123
 
Ouah le foutoir la dedans, j'ai pas eu le courrage de tous lire, enfin bon, tu travail sous Access, alors prends ADO et pas DAO pour commencer, respecte aussi une nomenclature un peu plus rigoureuse. Enfin bon, voila comment j'écrirais perso ton code, mais en ADO :

Private Sub connexion_Click()
Dim strSql As String
Static i As Byte
Dim rst As Recordset

strSql = "SELECT login, mot_de_passe FROM T_User WHERE login = " & """" & Me.txt_user & """" & " AND [mot_de_passe]=" & """" & Me.txt_pass & """"

Set rst = New ADODB.Recordset
rst.Open strSql, CurrentProject.Connection, adOpenStatic, adLockReadOnly

If Not rst.EOF Then
DoCmd.OpenForm "FM_Evaluation", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "F_CONNEXION"
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
End If
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
DoCmd.Quit
End If
End Sub

Voila, si ca ne marche pas, vérifie ta requete
0
sergeszebe Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   2
 
salut lust!
merci pour ton code mais il ne ne marche pas encore
il me met une erreur quand je compile:
ici: rst.Open strSql, CurrentProject.Connection, adOpenStatic, adLockReadOnly


et c'est sur le mot "open" il met: membre de methode ou de donnée introuvable.
j'ai bien mis aussi ADO avec la plus grande priorité
0
Lust Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   123
 
ecoute, si tu veux que ca marche, zip la bdd et envoie moi ca à sebdoucet@free.fr...
0
sergeszebe Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   2
 
tiens !à l'ouverture du formulaire acceuil le mt de passe est idheo.
si tu veux te balader c'est www.idheo.com
0
sergeszebe Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   2
 
Voila enfin le bon code! ça pourra aider les autres.

Dim msg As String, Titre As String, defval As String
Dim sql As String
Dim bd As Database
Dim Enreg As Recordset
Set bd = CurrentDb()
sql = "Select login, mot_de_passe From T_User Where login = " & """" & Me.txtlogin & """" & " AND mot_de_passe = " & """" & Me.txtpass & """"

'sql = "select distinctrow login,mot_de_passe from T_User "
Set Enreg = bd.OpenRecordset(sql)
If Enreg.EOF Then
MsgBox ("ereur")
Else
DoCmd.OpenForm "FM_Evaluation"
End If
End Sub
0