D'abord, merci, Phil Mil pour la piste à suivre.
J'en ai eu 2 du même type, qui ont bien disparu... en apparence.
En voulant vérifier, j'ai tapé la commande suivante dans la fenêtre d'exécution :
for x = 0 to CurrentProject.AllForms.Count-1:? x, CurrentProject.AllForms(x).Name:next
Plus aucun nom bizarre, parmi les 100 formulaires listés
Par curiosité, j'ai ensuite essayé l'autre méthode (Containers) :
for x = 0 to currentdb.Containers("Forms").Documents.Count-1: ? x, currentdb.Containers("Forms").Documents(x).Name:Next x
Et là, dans la réponse, mes 2 formulaires corrompus :
1 2
| 12 ~TMPCLP333601
13 ~TMPCLP423441 |
Pas grave, la méthode DeleteObject fonctionne très bien :
1 2
| docmd.DeleteObject acForm ,"~TMPCLP333601"
docmd.DeleteObject acForm ,"~TMPCLP423441" |
suivi du même listing que ci-dessus : plus rien d'anormal. Sans oublier le petit compactage/repair à la sortie.
En fait, pour savoir s'il y a des formulaires corrompus, avec ou SANS module, il faut comparer les 2 collections :
? currentdb.Containers("Forms").Documents.Count, CurrentProject.AllForms.Count
S'il y en a plus dans le container que dans AllForms, il y a fort à parier que quelques dates de péremption sont dépassées...
Etienne
Partager