Erreur d'exécution 3426 Objet associé

Résolu
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006 - 1 sept. 2005 à 19:54
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 2 sept. 2005 à 22:02
j'ai un problème lors du lancement de mon appli, il me met erreur d'exécution 3426 Objet associé, j'ai des enregistrements encodés donc ça ne peut pas venir du movefirst j'ai essayé aussi avec le recordcount>0 mais ça ne change pas, voici le code est le problème est en .Movelast et .MoveFirst :

Private Sub Form_Activate()
With DataEtudiant.Recordset
.MoveLast
lgTotalRecords = .RecordCount
.MoveFirst
End With

UpdateButtons True
End Sub

6 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
1 sept. 2005 à 20:58
J'aurais plutot codé :

If DataEtudiant.Recordset.EOF Then
' ton traitement si pas d'enreg dans le recordset
Else

With DataEtudiant.Recordset
.MoveLast
lgTotalRecords = .RecordCount
.MoveFirst
End With
UpdateButtons True
End If

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
1 sept. 2005 à 20:06
Salut, ton recordset doit être vide donc, tu ne peux pas faire un movelast ou movefirst.
Avant ça, teste :
if dataetudiant.recordset.eof then
' recordset vide
else
'recordset pas vide
end if
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
1 sept. 2005 à 20:11
J'ai du me tromper qqpart si je met ce code là c bon non??
If DataEtudiant.Recordset.EOF Then
UpdateButtons True
Else

With DataEtudiant.Recordset
.MoveLast
lgTotalRecords = .RecordCount
.MoveFirst
End With

End If

ça m'indique pourtant toujours le meme message d'erreur...
0
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
1 sept. 2005 à 20:12
mon updateButtons :

Public Sub UpdateButtons(Optional bLockEm As Variant)
'Détermine quel est l'état du jeu d'enregistrement
'(aucune opération d'édition en cours)
'(édition en cours avec l'enregistrement courrant dans la mémoire tampon)
'(ajout d'un enregistrement avec un enregistrement vide en cours)
Select Case DataEtudiant.Recordset.EditMode
Case dbEditNone 'pas d'edition en cours, gère simplement la navigation
If (lgTotalRecords >= 2) Then
If (DataEtudiant.Recordset.BOF) Or (DataEtudiant.Recordset.AbsolutePosition = 0) Then
'Appelle de la procédure navigateButtons avec passage d'argument
'L'argument est une chaîne de 11 "0 ou 1" représentant l'état des 11 boutons de commandes
NavigateButtons ("00111101011")
ElseIf (DataEtudiant.Recordset.EOF) Or (DataEtudiant.Recordset.AbsolutePosition = lgTotalRecords - 1) Then
NavigateButtons ("11001101011")
Else
NavigateButtons ("11111101011")
End If
ElseIf (lgTotalRecords > 0) Then
NavigateButtons ("00001101001")
Else
NavigateButtons ("00001000001")
End If
If (Not IsMissing(bLockEm)) Then
lockTheControls (bLockEm)
End If
Case dbEditInProgress 'Modification de l'enregistrement courant en cours
Call lockTheControls(False)
Text1(1).SetFocus
NavigateButtons ("00000010100")
Case dbEditAdd 'Ajout d'un nouvel enregistrement en cours
Call lockTheControls(False)
NavigateButtons ("00000010100")
Text1(1).SetFocus
End Select
End Sub
0

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

Posez votre question
CYCY07 Messages postés 67 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 22 mai 2006
2 sept. 2005 à 18:48
Pour le traitement si pas d'enregistrement j'ai rien mis et ça marche! Merci pour ton aide une fois de plus tu trouves la solution c'est gentil!
Thanks
cycy
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
2 sept. 2005 à 22:02
Alors, si tu n'as pas de traitement en cas de recordset vide, ça serait plus élégant de coder :

If NOT DataEtudiant.Recordset.EOF Then
With DataEtudiant.Recordset
.MoveLast
lgTotalRecords = .RecordCount
.MoveFirst
End With
UpdateButtons True
End If

C'est juste un détail mais ça fait plus propre et ça doit marcher pareil.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
Rejoignez-nous