Bonjour,
Je suis confronté à un problème dans une application ACCESS 2007 (mdb) que je n'arrive pas à cerner. Je vais essayer d'être très synthétique.
Contexte :
Dans un formulaire un utilisateur peut multi-sélectionner dans une zone de liste un ensemble d'outillages. La fonction de ce formulaire est de déplacer des outillages d'un site à un autre en tenant compte de déplacements déjà en cours ou pas. Les déplacements se font sous la forme d'un aller/retour.
Donc selon le déplacement demandé le traitement va créer un déplacement ou va modifier un déplacement en cours.
Code :
Je parcours ma liste d'éléments sélectionnés avec le code suivant :
Problème rencontré :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim varEltListe as variant 'AJouté cette ligne mais ne change rien varEltListe = Null ... For Each varEltListe In Me.listeOutillages '.... cas 1 : création demandée infosRetour = FonctionCreation(InfosOutillage) Me.listeOutillages.Selected(varEltListe) = False '.... cas 2 : Modification demandée. On donne ID déplacement existant infosRetour = FonctionModification(IDDeplacement, InfosOutillage) Me.listeOutillages.Selected(varEltListe) = False .... Next varEltListe
Lorsque je fais des créations tout se passe bien.
Lorsque je fais des modifications le code perd la référence à varEltListe et donc me plante sur le next ou ailleurs (desélection de la ligne dans la liste).
L'erreur soulevée est une erreur 2467 : L'expression entrée fait référence à un objet supprimé ou déplacé.
La seule différence, l'appel d'une procédure publique de création et/ou modification.
Le code des procédure est censé être très indépendant. Travail sur des recordset, transactions, etc.. Aucune erreur levée dans cette partie de code.
InfosRetour est une structure qui comporte une valeur numérique et une chaine de caractères.
InfosOutillage est une structure également.
Partager