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

Macros et VBA Excel Discussion :

[VBA-E] Requete SQL incluant des donnees provenant de cells


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Par défaut [VBA-E] Requete SQL incluant des donnees provenant de cells
    Avant d'aller plus loin dans mon projet je souhaiterais savoir si ce que j'envisage de faire est possible.

    Voila je souhaiterais executer une requete SQL sur ma base de donnees en incluant des donnees provenant de cellules Excell dans ma requete.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SQLStr = " SELECT * FROM MyTable WHERE ID = '[cell(1,1)]';"
    Je ne connais absolument pas la syntaxe pour le [cell(1,1)]. Est-ce possible? Si oui quelle est la syntaxe?

    Je souhaite stocker cette requete dans une cellule pour des raison de maintenance...

    Merci pour l'info.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    c'est tout à fait possible côté excel
    tu fais données données externe créer une requête
    un assistant sympa va t'aider
    tu sélectionne ta base
    et la(es) table(s)
    puis les champs laisses toi porter et demande de modifier la requête dans micro soft query

    en arrivant dans micro soft query tu peux effacer le sql si la reqête est trop complexe et le remplacer par le tien
    pour le champ qui sera piloté par excel tu crées un paramètre soit en appuyant sur le bouton afficher ou masquer les critères
    champ nom du champ qui sera vérifié dans excel
    valeur [je vous en prie entrez une valeur]
    tu peux aussi taper en sql
    where monchamp=[valeur??]
    si tu as un doute regarde la doc des requêtes paramétrées sous access ou sur la faq access
    quand ta requête est au point tu choisis renvoyez les données vers excel
    dans le menu fichier
    il te pose la question entre crochet dans le paramètre tu réponds
    un nouvel assistant encore plus sympa nommé importation de données apparaît

    tu commences par l'onglet paramètres et tu coches obtenir les valeurs de la cellule suivante ici tu vas chercher l'adresse de ta cellule
    n'oublies pas à ce stade de cocher le bouton actualiser automatiquement

    tu t'occupes ensuite de l'onglet propriétes et tu coches enregistrer (au moins) mais les autres options méritent un peu d'attention

    quant tu as fini tu indiques ou tu veux lire tes résultas

    remarques la barre d'outil données qui vient de s'ouvrir elle te donne
    accès aux options et te permet de maintenir ta requête


    attention à la fréquence de rafraichissement elle pourrait occuper tout ton temps machine

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Par défaut
    Bon je pense que j'ai trouve mais ca ne marche pas.


    Pour l'instant j'ai mis ma requete dans mon code ce qui me permet d'utiliser une variable pour stocker la valeur de ma cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    & "AND B2.PARENT = 'DIRECT COST OF WORKS' " _
                & "AND C2.WP = '" & SubPTID & "' " _
                & "Group BY " _

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Par défaut
    Oops, on s'est croise. Merci pour ta reponse.

    Cependant ma requete fonctionne correctement, elle me remplit bien ma feuille comme je veux. Mais elle est statique pour l'instant.

    En fait je souhaite utilise une a plusieurs variables pour la rendre dynamique.
    Je pense que je ne suis vraiment pas loin, ca doit etre une histoire de syntaxe

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    si elle est statique c'est que tu n'as pas modifié l'option comme indiqué

    n'oublies pas à ce stade de cocher le bouton actualiser automatiquement

    mais rien n'est perdu affichage barre d'outils données externes
    on se place dans les données de la requête et on coche dans la barre d'outils sur l'info bulle ad hoc (modifier paramètre ?)
    regarde aussi si la période de raffraichissement est ok et si recalcul auto est activé

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/08/2014, 14h33
  2. Echapper des caractères avec VBA pour requete SQL
    Par mpereg dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2008, 03h41
  3. [VBA-E] Requete SQL sous Excel
    Par climz dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/05/2006, 14h05
  4. Réponses: 31
    Dernier message: 28/04/2006, 11h09
  5. sorties de requetes sql: mettre des separateurs de champs
    Par tomsoyer dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/08/2005, 17h05

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