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 :

Piloter une requête par Excel


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 21
    Points
    21
    Par défaut Piloter une requête par Excel
    Bonjour,

    Je cherche un moyen de piloter une requête depuis une macro Excel. En fait, les critères pour la requête se trouvent dans Excel, ils sont indiqués par l'utilisateur via un formulaire puis Excel va demander l'exécution de cette requète.

    Actuellement, les critères sont stockés dans plusieurs onglets du fichier Excel, il y a un lien vers ces onglets dans Access (avec la liste des tables) et je demande à Excel d'éxécuter une requête en indiquant directement son nom dans la liste des requêtes situées dans la base Access. Cette requête prend les données dans les onglets liés et dans d'autres sous-requètes (vu qu'on ne peut pas faire dans la même requète une sélection puis des regroupement et des sommes), sous-requètes qui vont chercher également les paramètres dans les onglets Excel. Cette méthode marche mais il y a un lien vers le fichiers Excel, ce qui pose problème pour la suite.

    Je souhaite en effet que chaque utilisateur possède son fichier Excel et qu'ils partagent la même base de données. S'il y a 15 utilisateurs, il faut que je crée 15 liens vers les fichiers Excel, 15 fois les mêmes requètes et que je sache qui appelle la requète à chaque fois. Pas sur que ça marche mais ça pose des problèmes de mises à jour de l'application et d'organisations...

    J'ai donc cherché à passer les différents paramètres dans des variables et des les communiquer à Access pour les placer comme critères de la requète sauf que je ne vois pas trop comment faire.

    J'ai essayé de mettre les critères dans des variables sous Excel et de les spécifier dans la requête en tapant directement la requête en SQL avec les noms de variables au lieu d'indiquer son nom. ça marche s'il s'agit d'une requète "simple" qui s'appuie sur des tables ou des requètes qui ne demandent pas de critère, bref, quand le critère se situe au niveau de la requête que j'appelle. Hors, je m'appuie d'abord sur des requètes de selection qui demandent ces critères et j'appelle une requète qui regroupe les resultats de ces requêtes de séléction.

    Bref, je sais pas si c'est clair mais j'aimerais transferer des paramètres d'Excel à Access pour qu'Access puisse me faire une requète sur ces critères et renvoyer le résultat à Excel.

    Est ce qu'il y a d'autres moyens de faire ou est ce que c'est simplement pas possible ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 269
    Points
    34 269
    Par défaut
    bonjour,
    il y a d'autres moyens, et c'est même "relativement simple"
    je te recommande d'utiliser DAO. les tutos de DVP devraient faire l'affaire.
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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 à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 21
    Points
    21
    Par défaut
    je vais aller regarder ça

    DAO = ADO ou rien à voir ?

    Par contre, c'est une autre façon d'acceder aux données différentes ? est ce que c'est plus performant que de passer MS Query ?

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 269
    Points
    34 269
    Par défaut
    non ce n'est pas la même chose, même si la finalité est semblable.

    pour réaliser des requêtes dans une base depuis Excel, tu dois déclarer des élément comme ceci (pas obligatoire hein, mais ca reste dans l'idée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim AppAccess as Access.Application
    dim db as DAO.database
    dim RS as DAO.Recordset
    ton code sous excel sera dès lors quasiment le même que sous Access.
    je ne connais pas MS query sinon
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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

  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
    Points : 4 297
    Points
    4 297
    Par défaut
    Citation Envoyé par Maluje Voir le message
    Bonjour,


    (vu qu'on ne peut pas faire dans la même requète une sélection puis des regroupement et des sommes),

    mais si on peut

    on peut aussi lancer la requête depuis excel avec paramètres excel
    Elle est pas belle la vie ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    ton code sous excel sera dès lors quasiment le même que sous Access.
    je ne connais pas MS query sinon

    Est ce que ça signifie que je dois charger la bibliothèque des objets Access dans Excel pour manipuler ces données ou celle de DAO suffit ??

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 269
    Points
    34 269
    Par défaut
    oui !!
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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

  8. #8
    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
    Points : 4 297
    Points
    4 297
    Par défaut
    sous access on commence par entrer la requête sans paramètre

    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select service, libservice,salaire from matable where ancienneté>12;
    sous excel on fait données données externes nouvelle requête source access et on se connecte à la base et à la requête access

    on choisit ses champs et on fait éditer la requête sous msquery

    sous msquery on fait entrer un critère (c'est assez intuitif)
    en critère on met [service?] comme on entre un paramètre sous excel

    de retour sous excel on lie (l'assistant le propose) le paramètre [service?] avec une cellule
    Elle est pas belle la vie ?

  9. #9
    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
    Points : 4 297
    Points
    4 297
    Par défaut
    dao et msquery ont des performances similaires

    par contre msquery ne fait que du requêtage
    Elle est pas belle la vie ?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par random Voir le message
    mais si on peut

    on peut aussi lancer la requête depuis excel avec paramètres excel
    Pourtant, quand je tente une requête qui fait tout d'un coup, ça ne fonctionne pas. J'en ai d'abord une qui sélectionne les enregistrements d'après les critères puis une autre requête va prendre ce résultats et faire le regroupement et les sommes des lignes. Ou alors, j'ai zappé une précaution pour que ça fonctionne. Mais si effectivement, il y a moyen de créer une requête qui fait tout d'un coup, je peux le paramétrer avec des variables et l'écrire directement en sql dans Excel.

    Par contre, comment tu fais pour lancer une requete depuis Excel avec des paramètres qui concerne la sous-requete associée ?

    Requete 1 qui s'appuie sur Requete 2 qui s'appuie sur les paramètres

  11. #11
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 269
    Points
    34 269
    Par défaut
    pour les paramètres, cf la FAQ : http://access.developpez.com/faq/?page=SQL#ReqParamVar
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/07/2007, 01h08
  2. [Excel] Exportation d'une requête vers Excel via PHP
    Par Foudébois dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 17/05/2006, 16h46
  3. executer une requête par liste déroulante
    Par lolo_bob2 dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 11h35
  4. Modifier une requête par des données différente
    Par leloup84 dans le forum Requêtes
    Réponses: 9
    Dernier message: 06/03/2006, 14h23
  5. Comment grouper une requête par mois ?
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/06/2005, 12h01

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