Erreur d'éxecution 91

cs_lea75 Messages postés 54 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 28 août 2004 - 1 août 2004 à 12:26
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 - 1 août 2004 à 14:15
Mon code est :
Option Explicit
Dim monctrlmemb As Ctrlmembre

Private Sub cmdannuler_Click()
Txtlog.Text = ""
Txtpwd.Text = ""
End Sub

Private Sub cmdlog_Click()
If Len(Txtlog.Text) < 11 And Len(Txtpwd.Text) < 11 Then
If monctrlmemb.login(Txtlog.Text, Txtpwd.Text) Then
MDIAeroclubmemb.Show
Unload Me
MDIAeroclubmemb.mnumembre.Checked = True
Else
MsgBox "Code erroné ", vbExclamation
End If
Else
MsgBox "le login et le password ne peuvent pas dépassés 10 caractères", vbInformation, "Erreur"
End If
End Sub

et il bloque à la ligne "if monctrlmemb.login(Txtlog.Text...)"

Pouvez-vous m'aider?merci bcp

12 réponses

cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
1 août 2004 à 12:54
labout
Tu as oublié de nous indiquer comment était déclaré Ctrlmembre
en conséquence il n'est pas possible de t'aider.
@+
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
1 août 2004 à 12:58
Salut,
Ne sachant pas ce que doit renvoyer "monctrlmemb.login(Txtlog.Text, Txtpwd.Text)", c'est difficile de dire ou est l'erreur

quand c'est du boolean, ca doit fonctionner, il doit renvoyer vrai pour passer a la suite. En principe il doit comparer avec qqe chose.

if ValA > ValB then
if ValA < ValB then
if ValA = ValB then
if VaA then --> fonctionne si c'est du boolean sinon erreur (si je ne me trompe pas)

puis peut etre qu'il y a un "plantage" au niveau du (...,...)
puis le "monctrlmemb" est définit comme "Ctrlmembre", je pense une class, et peut être qu'il faut l'attribuer avec un "Set" (ca l'est peut etre mais on ne le voit pas) et on ne voit pas comment est rempli le "monctrlmemb", est il vide ou pas ? le mieux c'est d'ajouter un espion sans doute.

Bonne prog, poele_a_frire@hotmail.com
liquide
0
cs_lea75 Messages postés 54 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 28 août 2004
1 août 2004 à 13:07
J'ai déclaré ctrlmembre comme ceci :

"Ctrlmembre"

Function qui va contrôler si le login et le password encodé par l'utilisateur'
'le formulaire frmlog sont corrects et si c'est le cas sauvera tous les info '
'concernant le membre loggé dans 'Monlogin''
Public Function login(log As String, pass As String) As Boolean

Dim req As String
Dim rst As Recordset
Dim rst2 As Recordset

req = "select from vmembre where login_memb='" & log & "' and pwd_memb = '" & pass & "'"
Set rst = monctrldb.exec_requete(req)
If rst.EOF Then
login = False
Else
Set rst2 = monctrldb.exec_requete(req)
Set monlog = New Clslog
With monlog
.idmemb = rst.fields(0)
.nommemb = rst.fields(1)
.prenommemb = rst.fields(2)
.ruememb = rst.fields(3)
.noruememb = rst.fields(4)
.localitememb = rst.fields(5)
.cpmemb = rst.fields(6)
.dnmemb = rst.fields(7)
.email.memb = rst.fields(8)
.nocptememb = rst.fields(9)
.pwdmemb = rst.fields(10)
.loginmemb = rst.fields(11)
.actifmemb = rst.fields(12)
End With
login = True
End If
End Function
0
cs_lea75 Messages postés 54 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 28 août 2004
1 août 2004 à 13:07
J'ai déclaré ctrlmembre comme ceci :

"Ctrlmembre"

Function qui va contrôler si le login et le password encodé par l'utilisateur'
'le formulaire frmlog sont corrects et si c'est le cas sauvera tous les info '
'concernant le membre loggé dans 'Monlogin''
Public Function login(log As String, pass As String) As Boolean

Dim req As String
Dim rst As Recordset
Dim rst2 As Recordset

req = "select from vmembre where login_memb='" & log & "' and pwd_memb = '" & pass & "'"
Set rst = monctrldb.exec_requete(req)
If rst.EOF Then
login = False
Else
Set rst2 = monctrldb.exec_requete(req)
Set monlog = New Clslog
With monlog
.idmemb = rst.fields(0)
.nommemb = rst.fields(1)
.prenommemb = rst.fields(2)
.ruememb = rst.fields(3)
.noruememb = rst.fields(4)
.localitememb = rst.fields(5)
.cpmemb = rst.fields(6)
.dnmemb = rst.fields(7)
.email.memb = rst.fields(8)
.nocptememb = rst.fields(9)
.pwdmemb = rst.fields(10)
.loginmemb = rst.fields(11)
.actifmemb = rst.fields(12)
End With
login = True
End If
End Function
0

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

Posez votre question
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
1 août 2004 à 13:17
as tu fait un : set monctrlmemb = New Ctrlmembre ? qqe part

Bonne prog, poele_a_frire@hotmail.com
liquide
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
1 août 2004 à 13:22
labout

if monctrlmemb.login
or tu a déclaré
.loginmemb = rst.fields(11)

donc login n'est pas déclaré
@+
0
cs_lea75 Messages postés 54 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 28 août 2004
1 août 2004 à 13:25
Non car je veux juste controler dans ma base de données si le login et le password du formulaire cad txtlog et txtpwd existe dans ma base de données.
Je pensais que je devais faire monctrlmemb = New Ctrlmembre si c'était une création.
0
cs_lea75 Messages postés 54 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 28 août 2004
1 août 2004 à 13:27
Mais quand je fait monctrlmemb.login , ici login est la fonction login que j'appelle et non le champ loginmemb.
Je me trompe?
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
1 août 2004 à 13:39
bin je pense que tu as raison pour l'appel de la fonction, perso je ne comprend pas trop ce que veut dire Labout, mais il est vrai que mes connaissances par rapport a labout sont loins d'être à son niveau.

pour le New, je pensais justement qu'il fallait l'affecté au moins une fois en entete par exemple ou dans le form_load pour qu'il soit pris en compte.

en gros, le "dim " pour moi c'etait la creation de la variable et le "set ..new" c'etait la céation de la référence "réelle". mais il est vrai que ca ne fait pas longtemps que j'ai découvert tout ca.

Bonne prog, poele_a_frire@hotmail.com
liquide
0
cs_lea75 Messages postés 54 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 28 août 2004
1 août 2004 à 13:42
Merci beaucoup pour vos réponses mais je n'arrive pas à trouver mon erreur
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
1 août 2004 à 14:02
il bloque sur l'appel de la fonction, mais n'est ce pas a l'interieur de la fonction qu'il bloque ?, met des points d'arret succéssif pour voir si c'est au début ou en cours de fonction qu'il bloque.

Bonne prog, poele_a_frire@hotmail.com
liquide
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
1 août 2004 à 14:15
labout

Bon je vais être plus précis

Ta fonction login devrait être appellée
If login(Txtlog.Text, Txtpwd.Text) Then
Je ne vois pas ce que viens faire monCtrlmemb

Si c'est une classe tu peux la supprimer et mettre ta fonction login dans un module et la cela marche c'est sur.

@+
0
Rejoignez-nous