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

Requêtes et SQL. Discussion :

Exécuter une instuction SQL stockée dans une table


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut Exécuter une instuction SQL stockée dans une table
    Bonsoir,


    Voici mon petit problème. J'aimerais exécuter, depuis un formulaire, une instruction SQL que je stocke sous format texte dans une table. J'arrive à récupérer l'instruction (sous format string) et à l'exécuter, mais uniquement si elle est sans "variable" :
    Ex :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT (*) FROM MATABLE

    Mais comment faire pour éxécuter l'instruction suivante où l'une des clauses serait variable. Exemple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
     "SELECT COUNT (*) FROM MATABLE WHERE CHAMP1= " & valeurduchampdemonformulaire

    Si j'écris la requête directement comme cela dans ma table la partie "& valeurduchampdemonformulaire" est bien sûr interprétée comme du texte et ne me récupère pas la valeur de mon champ !


    Merci pour vos idées et excellente soirée

    Daniel

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    il me semble que tu peux stocker la totalité de la chaine en spécifiant directement la valeur liée au formulaire :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT (*) FROM MATABLE WHERE CHAMP1=Forms!MonFormulaire!MonChamp
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut
    Bonjour,

    Merci pour ta réponse, mais malheureusement, cela ne fonctionne pas...

    D'autres idées ?

    Merci d'avance

    Daniel

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Bonjour,
    Citation Envoyé par Zouzou1er Voir le message
    J'arrive à récupérer l'instruction (sous format string) et à l'exécuter, mais uniquement si elle est sans "variable" :
    Tu ne dis pas comment tu exécutes l'iinstruction SQL, merci d'être plus précis en donnant ton code.

    La réponse de jpcheck pourrait très bien fonctionner si tu utilises la chaîne de caractères, par exemple, pour l'affecter à la propriété RecordSource d'un Formulaire.
    _

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Par défaut Si c'est en VBA ...
    Ça peut ressembler à quelque chose comme ça !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim mySQLstockée as string
     
    mySQLstockée = DLookUp("MonChamps" , "Matable", "MonChampsQuiFiltre = " & Valeur du Filtre)
     
    Docmd.RunSQL mySQLstockée

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Bonjour, Bonsoir,

    Dans l'exemple que tu donnes, la fonction DLookup() doit retourner une commande SQL "finalisée".

    Peux-tu nous donner un exemple "réel" de la commande SQL que tu voudrais voir exécuter (c'est pour m'aider à apprécier où se trouve la difficulté).

    En ce qui concerne DoCmd.RunSQL, pas de problème il sait parfaitement évaluer les expressions qui désignent un contrôle d'un formulaire ouvert (cf. la réponse de jpcheck).

    En revanche si tu passes par DAO ou ADO, alors là ce n'est pas pareil, mais il y a des contournements possibles.

    Tu peux aussi envisager de gérer toi même la substitution des paramètres, ce n'est pas hyper sorcier et c'est "la classe".

    J'attends de tes nouvelles, merci.
    _

  7. #7
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Par défaut Et la concaténation ...
    Il me semble bien que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim myst as string
    valeurduchampdemonformulaire = 5
    mystr = "SELECT COUNT (*) FROM MATABLE WHERE CHAMP1= " & valeurduchampdemonformulaire
    mystr="SELECT COUNT (*) FROM MATABLE WHERE CHAMP1= 5"
    Docmd.RunSQL mystr

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Sais-tu que DoCmd.RunSQL c'est plutôt pour exécuter des requêtes Actions (INSERT, UPDATE, DELETE, CREATE...).
    Même avec une requête sélection (SELECT) qui fonctionnerait, tu n'aurais aucun résultat affiché.

    Suis-je clair ?
    N'hésite pas à me dire si ce n'est pas clair.

    Je n'ai pas bien compris le code VBA que tu viens de donner.
    mystr contiendrait le code SQL à exécuter ?

    As-tu seulement essayé ceci, juste pour te donner une idée ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim mystr As String
     
    mystr="SELECT COUNT (*) FROM MATABLE WHERE CHAMP1= 5"
    DoCmd.RunSQL mystr
    [EDIT]
    @ Chrysostome
    Je n'avais pas bien lu que les derniers messages envoyés étaient signés Chrysostome.
    Et non par l'auteur du message initial, à savoir Zouzou1er.

    Conclusion, ça ne servait à rien que je te demande plus d'infos ! _ ++ + =
    [/EDIT]


    _

Discussions similaires

  1. [Débutant] Gestion des rôles et authentification (couple identificateur stocké dans une BDD SQL Server 2008)
    Par Afaf001 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 16/09/2014, 13h07
  2. utiliser une procédure stockées dans une requête SQL
    Par Issam dans le forum Développement
    Réponses: 3
    Dernier message: 21/11/2011, 10h18
  3. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  4. [SQL] Choix dans une liste déroulante issue d'une requête SQL
    Par Moustic74 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/06/2007, 14h06
  5. [ODBC] [SQL-Server] affichage d'une image stockée dans une base sql server
    Par ahlemag dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/06/2006, 15h45

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