Comment supprimer un module de Formulaire en VBA Access

Résolu
cs_mr63 Messages postés 3 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 1 juin 2009 - 29 mai 2009 à 15:53
cs_mr63 Messages postés 3 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 1 juin 2009 - 1 juin 2009 à 17:02
Bonjour,

Je suis sous ACCESS 2002 SP3 et je n'arrive pas à supprimer les modules de Formulaires.

Je n'ai aucun problème pour supprimer les lignes de code du module, ni pour supprimer un Module Général, mais je reçois un message d'erreur lorsque j'essaie de supprimer l'objet Module lié à un Formulaire.

Voici par exemple ce que j'ai écrit, mais ça ne marche pas.

Sub SupprimerModule(NomMod As String)
Dim VBC As Object
With Application.VBE.ActiveVBProject
For Each VBC In .VBComponents
If VBC.Name = NomMod Then
.VBComponents.Remove VBC
Exit Sub
End If
Next VBC
End With
End Sub

Si quelqu'un peut m'expliquer ou me trouver le code VBA adapté pour ce faire, je lui en serai très reconnaissant.

D'avance merci

3 réponses

cs_mr63 Messages postés 3 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 1 juin 2009
1 juin 2009 à 17:02
Bonjour,

En fait ta réponse m'a permis de trouver la solution à travers la propriété "HasModule" du formulaire qu'il suffit de mettre à "False"

L'aide en ligne par F1 sur "HasModule" explique très bien comment ça fonctionne et je sais maintenant que j'étais sur une fausse piste.

Mon problème est maintenant résolu.

Un grand merci à ceux qui ont essayé de m'aider.
3
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
30 mai 2009 à 01:45
Bonjour

Voila un petit extrait de code qui me permet de trouver un module de formulaire

For Each obj In base.CurrentProject.AllForms
If obj.Name <> Me.Name Then
base.DoCmd.OpenForm obj.Name, acDesign, , , , acHidden
Set frm = base.Forms(obj.Name)
If frm.HasModule Then
Set Mod1 = frm.Module
End If
base.DoCmd.Close acForm, obj.Name, acSaveNo
End If
Next obj

bonne journée
0
cs_mr63 Messages postés 3 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 1 juin 2009
30 mai 2009 à 20:56
Bonjour.
Tout d'abord, merci pour cette réponse.
Mon niveau en VBA Access est encore modeste, j'éprouve quelques difficultés à mettre en oeuvre le code que tu m'as transmis.
D'une part je bloque sur "ME.Name" que je n'arrive pas à relier à quelque-chose ainsi que sur "base" que le compilateur voit comme une variable.
D'autre part, je n'ai pas vu (ou je ne sais pas) comment supprimer le module associé au formulaire.
Si tu pouvais m'aider encore un peu.
D'avance merci
0
Rejoignez-nous