Erreur Automation VBA

Résolu
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

  1. Bonjour,

    a voir

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

    a remplacer par

    DoCmd.DeleteObject acModule, aoModule.Name
    1. 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é.
    2. Bonjour,
      Non, ca marche, c'est comme cela que j'ai teste votre code. Par contre avez-vous declare aoModule en tant qu'object
    3. 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