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 -
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
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
A voir également:
- VBA:Un code qui ne marche pas!
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
24 réponses
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
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
tiens !à l'ouverture du formulaire acceuil le mt de passe est idheo.
si tu veux te balader c'est www.idheo.com
si tu veux te balader c'est www.idheo.com
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
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
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é