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 :

lister les requêtes d'une macro


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 31
    Points : 21
    Points
    21
    Par défaut lister les requêtes d'une macro
    Bjr,
    j'essaye de récupérer dans le "container (6)" les requêtes R1,R2,... enregistrées dans une macro M1. Je récupére bien le nom de la macro (dans db.container(6).name, ici M1) mais je n'arrive pas à récupérer les requêtes. Je vous drais m'en servir pour documenter ma base et faire des contrôles périodiques.
    Merci d'avance pour votre aide

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    intéressante demande, je n'arrive pas à accéder par le code aux "actions" des macros ...

    tu peux en revanche contourner cette difficulté en exportant les macros ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For each mac in CurrentProject.AllMacros
       Application.SaveAsText acMacro, mac.Name, "c:\temp\" & mac.name & ".txt"
    Next mac
    en ouvrant un fichier tu verras que c'est exploitable ...
    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
    Version =196611
    ColumnsShown =3
    Begin
        Action ="OpenQuery"
        Argument ="qryAtos"
        Argument ="0"
        Argument ="1"
    End
    Begin
        Action ="OpenQuery"
        Argument ="qryCrossCA"
        Argument ="0"
        Argument ="1"
    End
    Begin
        Action ="OpenQuery"
        Argument ="qryFranceCheck"
        Argument ="0"
        Argument ="1"
    End
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 31
    Points : 21
    Points
    21
    Par défaut j'ai testé
    Bjr,
    j'ai testé et je récupère bien le fichiers.
    Pour tout regrouper, j'ai une petite idée mais je ne sais pas la mettre en oeuvre alors que je pense que c'est possible sachant que les fchiers .txt ont une structure commune.
    Peut on ouvrir chaque fichier et grace à une boucle charger dans une table le nom, l'action,.. je crois avoir vu déjà ce genre de truc.je vais creuser de mon côté mais si vous avez une idée, je suis preneur.
    Beaucy

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Oui on peut, mais maintenant c'est à ton tour de proposer un code :
    1- ouvrir les fichiers
    2- les parcourir ligne à ligne ("parser") et analyser le contenu
    3- stocker le contenu dans une table par exemple ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Merci Caféine,
    c'est exactement ce que j'avais testé aujourd'hui en créant une table dans laquelle j'ai stocké le contenu du fichier texte après l'avoir retraité. J'adresse le code demain matin si cela peut servir à d'autres.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 31
    Points : 21
    Points
    21
    Par défaut ex de code pour stocker dans une table
    c'est un peu "beu" mais çà marche.
    Le principe est de créer un fichier texte (ici, d:\local\detmacro.txt => tab_in" puis de l'importer dans la base en ayant créé une première fois un format d'import spécifique (detmacro specification d'importation) pour éclater le fichier texte en differentes colonnes (separateur= signe egal).
    après , suivant l'intitulé de la colonne, on charge les champs de la table finale (ici docobjet => tab_out).
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    ---------------------------------------
    Private Sub Commande0_Click()
    Dim w_action As String
    Dim w_comment1 As String
    Dim w_comment2 As String
    Dim w_comment3 As String
    Dim i As Double
     
    For Each Mac In CurrentProject.AllMacros
       Application.SaveAsText acMacro, Mac.Name, "d:\local\detmacro.txt"
       DoCmd.DeleteObject acTable, "detmacro"
       ' import fichier "evenements" créé sous BO
       DoCmd.TransferText acImportDelim, "Detmacro Spécification d'importation", "detmacro", "d:\local\detmacro.txt", False, ""
     Set tab_in = CurrentDb.OpenRecordset("detmacro")
     Set tab_out = CurrentDb.OpenRecordset("docobjet")
    w_comment1 = ""
    w_comment2 = ""
    w_comment3 = ""
     
    Do While tab_in.EOF = False
    If tab_in![champ1] = "begin" Then
       w_comment1 = "aa"
       w_comment2 = "aa"
       w_comment3 = "aa"
    End If
     
     If tab_in![champ1] = "Action" Then
        w_action = tab_in![champ2].Value
     End If
     
    If tab_in![champ1] = "Comment" Then
        w_comment1 = tab_in![champ2].Value
     End If
     
    If tab_in![champ1] = "Argument" Then
        If w_comment2 = "aa" Then
           w_comment2 = tab_in![champ2].Value
        Else
           If w_comment3 = "aa" Then
              w_comment3 = tab_in![champ2].Value
           End If
        End If
    End If
     
     
     If tab_in![champ1] = "end" Then
     
        tab_out.AddNew
        tab_out.Fields("TypeObjet").Value = "macro"
        tab_out.Fields("NomObjet").Value = Mac.Name
        tab_out.Fields("Action").Value = w_action
    '-la syntaxe left(right... a pour but de supprimer les guillements
        tab_out.Fields("Commentaire").Value = Left(Right(w_comment1, Len(w_comment1) - 1), Len(w_comment1) - 2)
        tab_out.Fields("Commentaire2").Value = Left(Right(w_comment2, Len(w_comment2) - 1), Len(w_comment2) - 2)
        tab_out.Fields("Commentaire3").Value = Left(Right(w_comment3, Len(w_comment3) - 1), Len(w_comment3) - 2)
        tab_out.Update
     End If
     
     tab_in.MoveNext
     Loop
    tab_in.Close
    Next Mac

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

Discussions similaires

  1. Impossible de lister les résultats d'une requête
    Par jibe84 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/02/2014, 16h48
  2. [AC-2007] Lister les requêtes contenant un critère sur une date
    Par Beren69 dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/12/2012, 21h53
  3. [WD15] Requête pour lister les commandes d'une gestion commerciale
    Par tux59 dans le forum WinDev
    Réponses: 22
    Dernier message: 19/07/2010, 08h37
  4. [AC-2002] lister les actions d'une macro en vba
    Par shagun dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/07/2009, 19h13
  5. Lister les tables d'une Base
    Par YanK dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 08/10/2003, 10h40

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