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

CYCY07 67 Messages postés jeudi 19 mai 2011Date d'inscription 22 mai 2006 Dernière intervention - 1 sept. 2005 à 19:54 - Dernière réponse : cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention
- 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
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 1 sept. 2005 à 20:58
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 !?

Merci cs_CanisLupus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 1 sept. 2005 à 20:06
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 !?
CYCY07 67 Messages postés jeudi 19 mai 2011Date d'inscription 22 mai 2006 Dernière intervention - 1 sept. 2005 à 20:11
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...
CYCY07 67 Messages postés jeudi 19 mai 2011Date d'inscription 22 mai 2006 Dernière intervention - 1 sept. 2005 à 20:12
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
CYCY07 67 Messages postés jeudi 19 mai 2011Date d'inscription 22 mai 2006 Dernière intervention - 2 sept. 2005 à 18:48
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
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 2 sept. 2005 à 22:02
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.