Comment supprimer un module de Formulaire en VBA Access [Résolu]

cs_mr63 3 Messages postés dimanche 30 septembre 2007Date d'inscription 1 juin 2009 Dernière intervention - 29 mai 2009 à 15:53 - Dernière réponse : cs_mr63 3 Messages postés dimanche 30 septembre 2007Date d'inscription 1 juin 2009 Dernière intervention
- 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
Afficher la suite 

3 réponses

Répondre au sujet
cs_mr63 3 Messages postés dimanche 30 septembre 2007Date d'inscription 1 juin 2009 Dernière intervention - 1 juin 2009 à 17:02
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_mr63
c148270 303 Messages postés mercredi 12 janvier 2005Date d'inscription 3 octobre 2013 Dernière intervention - 30 mai 2009 à 01:45
0
Utile
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
Commenter la réponse de c148270
cs_mr63 3 Messages postés dimanche 30 septembre 2007Date d'inscription 1 juin 2009 Dernière intervention - 30 mai 2009 à 20:56
0
Utile
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
Commenter la réponse de cs_mr63

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.