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 :

Identifier les élément d'un query à partir de son texte


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Par défaut Identifier les élément d'un query à partir de son texte
    Bonjour,

    je dispose du texte suivant qui est le début d'un Query en sélection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [01-ABC] INNER JOIN [01-EFG] ON ([01-ABC].NMTS000RF = [01-EFG].NMTS000RF) AND ([01-ABC].SCJR000RF = [01-EFG].SCJR000RF)
    je cherche une fonction qui va 'parser' ce texte pour en extraire une par une le nom des tables utilisées dans le query (dans le cas ci dessus [01-ABC] et [01-EFG]) en s'appuyant sur les crochets.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Autant que je sache il n'y a rien en standard qui permet cela.

    Une solution un peu crade mais qui devrait marcher dans ce contexte très particulier :

    faire un split() de ta chaîne sur les [.
    Puis sur chacun des morceaux obtenus faire un split() sur ],
    l'élément 0 du second tableau est le nom de ta table.

    Mais il serait sans doute plus sûr de trouver le mot suivant le INNER JOIN.

    Tu peux te servir des instructions de manipulation de chaîne :
    • Mid
    • Left
    • Right
    • Instr
    • InStRv

    et peut être aussi de Like.

    Sinon si c'est une requête enregsitrée dans Access, tu peux regarder les tables systèmes : [MSysObjects], [MSysQueries].
    C'est là que Access entrepose ses requêtes et certains éléments sont déjà identifiés.

    Ici une requête qui t'affiche les requêtes sous-forme de requête.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT MSysObjects.Name, MSysObjects.Type, Switch([Attribute]=0,"Début requête",[Attribute]=1,"Table destinatrice" & Chr(13) & Chr(10) & "[Name1]=Nom Table",[Attribute]=5,"Table source" & Chr(13) & Chr(10) & "[Name1]=Nom Table",[Attribute]=6,"Champ" & Chr(13) & Chr(10) & "[Name1]=Alias",[Attribute]=7,"Jointure",[Attribute]=8,"Critère",[Attribute]=11,"Tri",[Attribute]=255,"Fin requête") AS LibelleAttribut, MSysQueries.*
    FROM MSysQueries INNER JOIN MSysObjects ON MSysQueries.ObjectId = MSysObjects.Id
    WHERE (((MSysObjects.Name)<>"_qry_QueryList") AND ((MSysObjects.Type)=5))
    ORDER BY MSysObjects.Name, MSysQueries.Attribute;

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre émérite
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Par défaut
    Merci Marot_r pour la rapidité et la solution,
    effectivement la requête sur les tables système donne toute l'information dont j'ai besoin

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

Discussions similaires

  1. [XL-2016] Modifier les données d'un client à partir de son identifiant
    Par mldfromdtklan dans le forum Excel
    Réponses: 4
    Dernier message: 15/02/2019, 02h48
  2. Réponses: 4
    Dernier message: 08/02/2015, 22h38
  3. [MySQL-5.6] Identifier les éléments d'un table de référence absent
    Par bouligoulag dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/02/2014, 16h39
  4. Réponses: 9
    Dernier message: 08/12/2009, 18h26
  5. connaitre les propriétés d'un champ à partir de son nom
    Par toome dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/10/2005, 11h16

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