Erreur d'exécution 3426 Objet associé [Résolu]

Messages postés
67
Date d'inscription
jeudi 19 mai 2011
Dernière intervention
22 mai 2006
- - Dernière réponse : cs_CanisLupus
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
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
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
8
3
Merci
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 !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 86 internautes nous ont dit merci ce mois-ci

Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
8
0
Merci
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 !?
Messages postés
67
Date d'inscription
jeudi 19 mai 2011
Dernière intervention
22 mai 2006
0
Merci
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...
Messages postés
67
Date d'inscription
jeudi 19 mai 2011
Dernière intervention
22 mai 2006
0
Merci
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
Messages postés
67
Date d'inscription
jeudi 19 mai 2011
Dernière intervention
22 mai 2006
0
Merci
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
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
8
0
Merci
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 !?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.