Erreur Automation VBA

Résolu/Fermé
vbman - 21 mai 2013 à 17:28
 vbman - 23 mai 2013 à 14:20
Bonjour,

Je développe une application VBA sur Access et je me récupère une erreur d'automation :
"Erreur d'exécution '-2147467259 (80004005)':

Erreur Automation
Erreur non spécifiée"

Voilà mon code :
//
' Suppression de chaque module
For Each aoModule In CurrentProject.AllModules
' On supprime tous les modules sauf celui-ci
If (VBE.ActiveVBProject.VBComponents(aoModule.Name).Name <> NOM_MODULE) Then
Debug.Print VBE.ActiveVBProject.VBComponents(aoModule.Name).Name
DoCmd.DeleteObject acModule, VBE.ActiveVBProject.VBComponents(aoModule.Name).Name
End If
Next
//
Merci d'avance pour votre aide !

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
21 mai 2013 à 18:11
Bonjour,

a voir

DoCmd.DeleteObject acModule, VBE.ActiveVBProject.VBComponents(aoModule.Name).Name

a remplacer par

DoCmd.DeleteObject acModule, aoModule.Name
0
Merci de ta réponse !
J'ai changé ton code mais ça ne change rien !
En fait le code plante sur l'instruction Next. Je me demande si CurrentProject.AllModules n'est pas un peu obsolète... je vais aller me renseigner de ce côté.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
22 mai 2013 à 10:20
Bonjour,
Non, ca marche, c'est comme cela que j'ai teste votre code. Par contre avez-vous declare aoModule en tant qu'object
0
Je pense que c'est la boucle qui gêne. J'ai utilisé ceci et ça marche !

For Each VBC In Application.VBE.ActiveVBProject.VBComponents
If ((VBC.Name <> NOM_MODULE) And (Left(VBC.Name, 5) <> "Form_") And (Left(VBC.Name, 7) <> "Report_")) Then
With Application.VBE.ActiveVBProject.VBComponents
.Remove VBC
End With
End If
Next VBC
0