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 :

Exporter tout le code VBA d'une application Access [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 433
    Billets dans le blog
    11
    Par défaut Exporter tout le code VBA d'une application Access
    Salut,

    Existe-t-il un moyen d'exporter tout le code VBA d'une base access ???
    Le code peut être contenu dans un formulaire, un état et un module.

    Merci.

  2. #2
    Membre chevronné Avatar de Tonioyo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 343
    Par défaut
    Bonjour,

    Il est possible d'éxtraire tout le code contenu dans une base de donnée Access en utilisant l'introspection.

    voici une contribution que j'ai proposé, à partir des objets Modules (de code) il est possible d'extraire chaque ligne d'un module (Module de classe, module de code, Module de formulaire, module d'etat, etc ...)

    http://www.developpez.net/forums/d79...lister-appels/

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 433
    Billets dans le blog
    11
    Par défaut
    Salut,

    Merci pour la réponse, mais cela me bloque à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CodeStruct(Iter) = Array(Comp.Name, CurProc, Comp.CodeModule.ProcStartLine(CurProc, vbext_pk_Proc), Comp.CodeModule.ProcCountLines(CurProc, vbext_pk_Proc))
    Le message est :
    "erreur d'exécution '35'
    Sub ou Function non définie"

    Alors que la bibliothèque "Microsoft Visual Basic for Applications Extensibility 5.3" est bien active et que je sélectionne une des functions d'un de mes modules...

  4. #4
    Membre chevronné Avatar de Tonioyo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 343
    Par défaut
    Salut,

    As-tu bien pris le dernier fichier zippé ?(tout à la fin de la discution)
    Les fichiers les plus récents sont ceux qui sont le plus loin dans la discution.

  5. #5
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 433
    Billets dans le blog
    11
    Par défaut
    Effectivement, je n'ai plus le message d'erreur !

    Mais ou se trouve le code ???

  6. #6
    Membre chevronné Avatar de Tonioyo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 343
    Par défaut
    En fait il faut analyser un peu ce code car il lit dans chaque module de code. Il existe des paramètres pour savoir si l'on est dans un module de classe, module de formulaire, etc ...

    Les lignes de codes sont stockées dans l'objet Module.

    par exemple pour parcourir chaque ligne d'un module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Dim numeroDeLigneEnCours As Long
      For numeroDeLigneEnCours = 1 To composantVB.CodeModule.CountOfLines
        debug.print composantVB.CodeModule.Lines(numeroDeLigneEnCours, 1)
      Next
    et donc pour toutes les récupérer d'un coup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        debug.print composantVB.CodeModule.Lines(1, composantVB.CodeModule.CountOfLines)
    pour parcourir les composants VB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      For Each composantVB In Application.VBE.ActiveVBProject.VBComponents
        traiterLeComposantVB
      Next
    la procédure traiterLeComposantVB est composé de l'un des deux morceaux de code ci-dessus.

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

Discussions similaires

  1. [Toutes versions] Extraire le code vba d'une base Access
    Par zoom61 dans le forum Contribuez
    Réponses: 3
    Dernier message: 08/11/2019, 08h41
  2. Réponses: 4
    Dernier message: 22/12/2011, 02h22
  3. Réponses: 3
    Dernier message: 12/05/2006, 12h34
  4. Réponses: 13
    Dernier message: 20/04/2006, 15h37
  5. Réponses: 4
    Dernier message: 13/10/2005, 14h44

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