IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Supprimer module de Formulaire [AC-2002]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut Supprimer module de Formulaire
    Bonjour,

    Je suis sous ACCESS 2002 SP3 et je ne sais pas comment supprimer les modules de Formulaire.

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

    Voici le code que j'utilise, ça marche pour un Module Général, mais ça ne marche pas pour un Module de Formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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 mon erreur ou bien me trouver le code VBA adapté pour supprimmer un Module de Formulaire, je lui en serai reconnaissant.

    D'avance merci

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 047
    Par défaut
    Bonjour,
    en supprimant le formulaire le module doit se supprimer au moins à l'affichage.
    Bonne journée

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut
    Bonjour et merci pour votre intervention

    Il est tout à fait exact qu'en supprimant le formulaire, je supprime en même temps le Module associé. Que ce module contienne ou pas de lignes de code VBA.

    Mais ce n'est pas ce que je souhaite faire.

    Je veux conserver le formulaire mais supprimer le Module associé.

    Pour expliquer l'origine de ma question : j'ai "nettoyé" une grosse application Access de tout le code inutile et en particulier celui qui était déclenché par click ou autres actions sur des contrôles qui ont été supprimés ou qui n'existent plus.

    Du coup je me retrouve avec une trentaine de formulaires, qui n'ont plus de code VBA associé, mais qui conservent quand même leur Module.

    Lorsque je vais dans VBE, ces Formulaires apparaissent dans la section "Microsoft Access Objets de classe", mais la page correspondante est vide puisque j'ai supprimé le code inutile.

    Lorsqu'un formulaire n'a jamais eu de contrôle activant du code, il n'a pas de Module associé et je ne le vois pas dans VBE ce qui me paraît normal.

    Je cherche donc une solution pour supprimer automatiquement cette trentaine de Modules associés aux formulaires ayant "perdu", lors du nettoyage, les contrôles qui activaient du code.

    L'objectif est d'avoir une situation propre.

    S'il n'y avait que quelques formulaires, je les aurais détruits puis reconstruits, mais pour une trentaine c'est galère.

    J'ai cherché une solution en exportant puis en réimportant, mais là encore, le Module associé, même vide (sans aucune ligne de code) suit.

    Voilà la raison qui m'amène à consulter les experts du Forum.

    D'avance merci pour vos suggestions.

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 619
    Billets dans le blog
    67
    Par défaut
    Salut,
    Oui apparemment ça coince,
    mais tu peux toujours effacer le contenu de tes modules de formulaires avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With VBC.CodeModule
       .DeleteLines 1, .CountOfLines
    End With
    et ta procédure devrait ressembler à çà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Sub SupprimerModule(NomMod As String)
    Dim VBC As Object
     
       With Application.VBE.ActiveVBProject
          For Each VBC In .VBComponents
     
             If VBC.Name = NomMod Then
     
                 If Left(NomMod, 5) = "Form_" Then
     
                    With VBC.CodeModule
                       .DeleteLines 1, .CountOfLines
                    End With
     
                  DoCmd.Close acForm, Mid(NomMod, 6, Len(NomMod) - 5), acSaveYes
     
                  End If
     
                Exit Function
     
             End If
     
          Next VBC      
       End With
     
    end sub
    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut
    Bonjour

    Tout d'abord merci pour votre intervention.

    Comme je l'ai expliqué précédemment, j'avais bien réussi à supprimer les lignes de code du Module avec une procédure de ce type, mais je voudrai aller plus loin en supprimant le Module lui même.

    Et comme vous le dites en début de votre message "Oui apparemment ça coince"

    Est-ce que la formulation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VBComponents.Remove VBC
    ne s'appliquerait pas aux Modules de Formulaires ?

    Quelle autre approche pourrait-on faire ?

    D'avance merci

  6. #6
    Membre confirmé Avatar de antoine dpt
    Inscrit en
    Juillet 2004
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 64
    Par défaut
    va sur la FAQ Access, je me souviens avoir lu un truc la dessus. je crois que ton problème y est traité.

    antoine

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut
    Bonjour,

    Avant de poser ma question j'avais balayé le principaux Tutos ainsi que la FAQ Access.

    Vu la masse d'information, je ne peux affirmer avoir tout parcourru, mais sincèrement j'ai fouiné un peu partout sans trouver ce que je cherchais.

    C'est pourquoi je me suis adressé à la communauté.

    Si dans votre souvenir vous pouviez me trouver une piste plus précise je vous en serai gré.

    D'avance merci

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut Solution au problème posé : propriété "HasModule"
    Bonjour,

    Je viens de trouver la solution à l'aide de la propriété "HasModule" du formulaire qu'il suffit tout simplement de mettre à "False".

    L'aide en ligne par F1 sur la propriété "HasModule" fournit une explication très claire qui m'a ouvert les yeux.

    Un grand MERCI encore aux personnes qui ont essayé de m'aider.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer module du démarrage
    Par Fluxy dans le forum Debian
    Réponses: 2
    Dernier message: 24/11/2007, 17h14
  2. Réponses: 3
    Dernier message: 16/07/2007, 09h20
  3. Code pour supprimer caractere dans formulaire
    Par WITER dans le forum IHM
    Réponses: 17
    Dernier message: 26/01/2007, 16h25
  4. Variable Globale dans un module de formulaire.
    Par wisiwi dans le forum Access
    Réponses: 5
    Dernier message: 30/03/2006, 14h03
  5. Modules et formulaires
    Par Elstak dans le forum Access
    Réponses: 14
    Dernier message: 28/02/2006, 22h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo