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.

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Points : 12
    Points
    12
    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 664
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 664
    Points : 34 371
    Points
    34 371
    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

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Points : 12
    Points
    12
    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 émérite

    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
    Points : 2 368
    Points
    2 368
    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 habitué
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Points : 153
    Points
    153
    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 émérite

    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
    Points : 2 368
    Points
    2 368
    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 habitué
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Points : 153
    Points
    153
    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 émérite

    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
    Points : 2 368
    Points
    2 368
    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]


    _

  9. #9
    Membre habitué
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Points : 153
    Points
    153
    Par défaut Pas de problème ...
    J'avais bien compris, amis en fait ça faisait avancer le schmilblik. En ce qui concerne le Docmd.RunSQL "Select ...", oui tu as raison, mais j'ai fait un copié collé parce que le sujet n'était pas là. A+

    Par contre si quelqu'un pouvait répondre à ma question qui est sous le titre:
    Requête et paramétrage ListBox.Colonne

    P... de français, comme si l'on ne pouvait pas continuer de programmer en sheakspearien !

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, 14h07
  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, 11h18
  3. Réponses: 1
    Dernier message: 26/12/2010, 22h20
  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, 15h06
  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, 16h45

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