Bonjour,
ayant cherché en vain le pourquoi du message d'erreur de VBA Access, je me permets de m'en remettre à vous.
Voici le problème : (certains diront : sujet déjà abordé : oui mais la réponse ne m'a jamais permis de m'en sortir...)
J'ai un formulaire (FormulaireConsultation (lié à une requête) contenant un sous-formulaire(FormulaireListeActes) (lié à une table). J'ai un contrôle "liste déroulante" dans le formulaire père me permettant de sélectionner des items d'une table (acte) pour remplir le sous-formulaire.
Voici le code :
1 2 3 4 5
| Forms![FormulaireConsultation].SetFocus
Forms![FormulaireConsultation].Form![FormulaireListeActes].SetFocus
DoCmd.GoToRecord , , acNewRec
Forms![FormulaireConsultation].Form![FormulaireListeActes]![IdTable2interim] = Me.Liste.Column(0)
Me.SetFocus |
Lorsque je remplis mon premier enregistrement, je commence à remplir les champs de mon formulaire Consultation puis je choisis un item de la listbox pour remplir le sous-formulaire. Je peux en sélectionner un autre et ainsi de suite. Le sous-formulaire se remplit sans pb.
A présent, je décide de remplir un deuxième enregistrement du formulaire Consultation.
Je remplis le formulaire Consultation puis je sélectionne un item de la listbox comme auparavant. Et à ce moment j'ai droit à ce message :
"erreur d'exécution 2110 : impossible d'activer le contrôle FormulaireListeActes" et il pointe la ligne :
Forms![FormulaireConsultation].Form![FormulaireListeActes].SetFocus
Pourquoi lors du premeir enregistrement, il a pu lui donner le focus et non la seconde fois ?
J'ai reproduis les conditions dans une base factice où le pb ne se pose pas : lors des enregistrements successifs, la listbox arrive à donner le focus au sousformulaire et à le remplir. ( avec le même code VBA, seuls les noms des tables/formulaires changent bien sûr)
J'ai beau détruire mon sous-formulaire (FormulaireListeActes) et le recréer en le changeant de nom, rien à faire : au second enregistrement, le code VBA ne parvient pas à donner le focus au sous-formulaire.
Si quelqu'un a une idée ?
(je suis prêt à vous envoyer le fichier mdb pour voir le pb de visu)
En vous remerciant par avance,
LBS
Partager