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

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

Votre réponse

3 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
dimanche 30 septembre 2007
Dernière intervention
1 juin 2009
- 1 juin 2009 à 17:02
3
Merci
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.

Merci cs_mr63 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_mr63
Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Dernière intervention
3 octobre 2013
- 30 mai 2009 à 01:45
0
Merci
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
Messages postés
3
Date d'inscription
dimanche 30 septembre 2007
Dernière intervention
1 juin 2009
- 30 mai 2009 à 20:56
0
Merci
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.