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 :

VBA : Lire les propriétés des Macros [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut VBA : Lire les propriétés des Macros
    Bonjour,

    Je souhaitait développer un petit formulaire pour parcourir mes macros et lire leurs propriétés (c'est à dire la liste des actions des macros et leurs paramètres)

    J'ai essayé plusieurs choses sans résultat.
    Avec le code suivant, j'obtient la liste des macros mais je suis incapable de lire les propriétés...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ListMacros()
    Dim Proj, Mac As AccessObject
        Set Proj = Application.CurrentProject
        For Each Mac In Proj.AllMacros
            MsgBox Mac.Name
        Next Mac
    End Sub
    Impossible de lire les "Properties" de ces AccessObject (à part le nom), et d'ailleurs je n'en ai trouvé aucune qui corresponde au nom des actions ou à leurs paramètres.

    J'ai essayé aussi en passant par des objets Script (je ne sais plus trop comment, je n'ai pas le code sous la main) mais sans plus de résultat.

    Quelqu'un aurait déjà réalisé ça ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Il n'y a rien dans Access pour explorer le contenu des macros.

    Regarde quand même cette discussion : lister le contenu de la macro autokeys

    A+

  3. #3
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour à tous,

    Juste trop fort LedZeppII, merci, je viens de tester c'est nickel.
    J'avais cherché dans tous les sens mais je dois avouer que je ne pensais pas que tous les objets seraient "lisibles" en VBA sauf les macros... encore une "cohérence" de nos amis de Microsoft...

    j'étais parti sur les objets CurrentDb.Containers("Scripts").Documents
    je trouve bien le nom des macros et là dedans il y a plein de "properties" (quand je dis plein, c'est en cascade... à l'infini ?) mais visiblement aucune qui contenait les infos que je voulais.

    Merci encore

  4. #4
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour à tous,

    Avant tout je vous souhaite de trés bonne fêtes de fin d'année.

    Bon, je retombe sur une difficulté analogue à la lecture des propriétés des macros : si un formulaire n'est pas ouvert, impossible de lire ses propriétés ou celles de ses contrôles.

    Il n'y aurait pas un équivalent du "Wizhook.Openscript" qui ne pointerait pas sur les macros mais sur les formulaires ?

    Bon, il me restera toujours la possibilité d'ouvrir chaque formulaire en mode création, ou de l'exporter avec SaveText, mais au cas où quelqu'un connait un méthode plus simple...

    Merci d'avance

  5. #5
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour et trés bonne année,

    Bon je vois que ça n'inspire personne (faut dire que ce code semble déjà venir de loin...), je passerais par des exports avec SaveText.

    Je vous ferais part du résultat

    Merci encore

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour et bonne année à toi.

    J'ai regardé dans le code des assistants, et plus particulièrement dans celui servant à documenter une base de données (WZTOOL80.MDE).
    C'est là que j'avais commencé à regarder pour les macros.
    Pour les formulaires, le code ouvre chaque formulaire en mode création
    Code Extrait de Private Sub DocFrmOrRpt(stObjName As String, objType As Integer) : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        If (objType = acForm) Then
            If (Not fDontCloseObj) Then DoCmd.OpenForm stObjName, acDesign, , , , acHidden
            Set fro = Forms(stObjName)
        Else
            If (Not fDontCloseObj) Then
                DoCmd.OpenReport stObjName, acDesign
            End If
            Set fro = Reports(stObjName)
        End If
    A+

  7. #7
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour LedZeppII,

    Toujours aussi efficace
    Merci beaucoup.

    Je ne manquerais pas d'aller voir dans cette page le détail des "codes des assistants".

    Sinon, au passage, tu ne connaitrais pas une méthode d'ouverture d'une Macro en mode création ?

    Je sais, je commence à demander beaucoup...

  8. #8
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Là je suis un peu sec.

    Je n'ai trouvé que ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DoCmd.SelectObject acMacro, "Macro1", True
    SendKeys "+{F10}"
    SendKeys "{DOWN}{DOWN}"
    SendKeys "{ENTER}"
    Ce qui se traduit par :
    Sélectionner la macro "Marco1" dans la fenêtre de base de données.
    Invoquer le menu contextuel.
    Sélectionner le deuxième élément du menu (Mode création).
    Valider par <Entrée>

    A+

  9. #9
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour à tous, spécialement à LedZeppII

    Merci pour les Sendeys, si tu vas voir le lien tu verras que j'ai essayé avec une autre méthode.

    Juste pour vous revenir sur le résultat de votre aide :

    http://www.developpez.net/forums/d87...e/#post4967130

    Et Merci encore

    à bientôt

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

Discussions similaires

  1. Lire les propriétés des fichiers Microsoft Office avec VB.net
    Par clementmarcotte dans le forum Contribuez
    Réponses: 0
    Dernier message: 03/04/2015, 05h35
  2. [AC-2010] Comment lire les propriétés d'un fichier Accdb en VBA ?
    Par Daejung dans le forum VBA Access
    Réponses: 8
    Dernier message: 07/02/2012, 20h49
  3. Lire les propriétés des composantes d'une form
    Par mig_2000 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 08/07/2009, 11h43
  4. Réponses: 9
    Dernier message: 03/12/2007, 14h50
  5. Lire et modifier les propriétés des fichiers Office
    Par SilkyRoad dans le forum Contribuez
    Réponses: 4
    Dernier message: 18/09/2006, 22h25

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