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 :

requête avec paramètre qui marche pas


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut requête avec paramètre qui marche pas
    Bonjour tout le monde

    Bien que très motivé aujourd'hui je me retrouve coincé avec une requête que je n'arrive pas du tout a exécuter!! Et pour tout dire j'avoue que j'arrive très très proche du point de rupture.... y'a des fois j'vous jure qu'une batte de baseball serait la bienvenue... enfin bref venons en au fait.

    J'ai une requête assez complexe (pour ne dire +) qui a besoin de 2 paramètres (une date de début et une date de fin) que l'utilisateur saisis lui-même.

    Quand j'exécute ma requête indépendamment, pas de problème... Access me demande de saisir les param et tout s'exécute sans le moindre soucis! Par contre, dès que je l'introduis dans mon code... aye aye aye, c'est la débandade!

    J'ai essayé je ne sais combien de méthodes toutes plus farfelues les unes que les autres et là je craque.... HEEEEELP

    voici le bout de code qui je pense est la source du problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim qdf As DAO.QueryDef
    ...
    ...
    Case 1  ' 1 : filtre période ok, pas de filtre sur no article ni sur description
                Set qdf = CurrentDb.QueryDefs("rq_av_lst_ART_QTE_FINAL")
                With qdf
                    .Parameters("datedeb") = date_deb
                    .Paramaters("Datefin") = date_fin
                    .Execute
                End With
    Et le pire dans tout ça est que ce n'est que le début... Bref, je vais arrêter de me plaindre et je m'en remets à vous.. J'espère que je vous ai donné assez d'info pour me filer un coup de pouce...

    Merci d'avance

    Julius

  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 649
    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 649
    Points : 34 353
    Points
    34 353
    Par défaut
    Bonjour,
    quelques questions par rapport à cette requête récalcitrante :
    - est-ce une requête d'insertion/modification/suppression ?
    - peut-on avoir le SQL de la dite requête ?
    - quelles sont les valeurs que tu fournis dans le code ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut
    Alora,

    j'ai encore réfléchi à mon problème et je crois que je me suis bien foutu d'dans! C'est pas bien de s'énerver car après on fait du grand n'importe quoi et on dérange des gens pour presque rien! Enfin... j'ai revu mon truc depuis le début et tout de suite qqch m'a frappé : JE SUIS BÊTE!

    En fait la grosse requête dont je parlais avant n'a pas de paramètres. Je m'explique : cette requête récupère des données qui sont calculées dans 8 autres requêtes qui elles par contre ont des paramètres (toujours les mêmes, date de début et date de fin). Alors je pense bien que si j'essaie d'en passer à ma requête principale ça va pas fonctionner!

    Bon du coup je me trouve quand même bien enquiquiner.... dois-je renseigner mes param pour les 8 requêtes ou existe-t-il un moyen, une astuce de faire ce passage de paramètres autrement?

    Pour info toutes mes requêtes sont des requêtes sélection!

    Je vous mets ici une des mes 8 requêtes et la requête principale (attention les yeux) :

    1) une de mes 8 requêtes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT iidba_ipv_commandes_clients_pos.art_cod, Sum(iidba_ipv_commandes_clients_pos.cdp_qte_saisie) AS qte_cde_csa_pjt, [entrer la date de début] AS datedeb, [entrer la date de fin] AS Datefin
     
    FROM (iidba_ipv_commandes_clients INNER JOIN iidba_ipv_commandes_clients_pos ON iidba_ipv_commandes_clients.cde_num = iidba_ipv_commandes_clients_pos.cdp_cde_num_off) INNER JOIN iidba_ipv_commandes_clients AS iidba_ipv_commandes_clients_1 ON iidba_ipv_commandes_clients_pos.cde_num = iidba_ipv_commandes_clients_1.cde_num
     
    WHERE (((iidba_ipv_commandes_clients_pos.cdp_offcde)="C") AND ((iidba_ipv_commandes_clients_1.cde_datdem) Between [entrer la date de début] And [entrer la date de fin]))
     
    GROUP BY iidba_ipv_commandes_clients_pos.art_cod, [entrer la date de début], [entrer la date de fin], IIf([iidba_ipv_commandes_clients]![cde_refdem] Like "*CSA*" Or [iidba_ipv_commandes_clients]![cde_refdem] Like "*PJT*",1,0)
     
    HAVING (((IIf([iidba_ipv_commandes_clients]![cde_refdem] Like "*CSA*" Or [iidba_ipv_commandes_clients]![cde_refdem] Like "*PJT*",1,0))=1));
    2) Ma requête principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    SELECT iidba_ipv_article.art_cod, iidba_ipv_stock.stk_qte AS art_qte_stock, iidba_ipv_article.art_lib, TBL_ARTICLE.art_type, 
        iidba_ipv_article.art_rem, iidba_ipv_article.art_stk_ep AS art_epuise, rq_av_lst_art_qte_cmde_KANBAN.qte_cde_kan, 
        rq_av_lst_art_qte_cmde_CSA_PJT.qte_cde_csa_pjt, rq_av_lst_art_qte_cmde_autre.qte_cde_autre,  
        rq_av_lst_art_qte_appro.SommeDeapo_rest_ges,  rq_av_lst_art_qte_of.SommeDeof_qte_a_ent, 
        rq_av_lst_art_qte_sorties.qte_sorties_exp,  rq_av_lst_art_qte_sorties.qte_sorties_internes, rq_av_lst_art_qte_entrees.qte_appro, 
        rq_av_lst_art_qte_entrees.qte_of, rq_av_lst_art_qte_NF.SommeDenf_qte_a_sort
     
    FROM (((((((((iidba_ipv_article LEFT JOIN TBL_ARTICLE ON iidba_ipv_article.art_cod = TBL_ARTICLE.art_cod) LEFT JOIN 
                 iidba_ipv_stock ON (iidba_ipv_article.art_soc_proprietaire = iidba_ipv_stock.soc_num) AND (iidba_ipv_article.art_cod = iidba_ipv_stock.art_cod)) LEFT JOIN 
    rq_av_lst_art_qte_cmde_KANBAN ON iidba_ipv_article.art_cod = rq_av_lst_art_qte_cmde_KANBAN.art_cod) LEFT JOIN 
    rq_av_lst_art_qte_cmde_CSA_PJT ON iidba_ipv_article.art_cod = rq_av_lst_art_qte_cmde_CSA_PJT.art_cod) LEFT JOIN 
    rq_av_lst_art_qte_appro ON iidba_ipv_article.art_cod = rq_av_lst_art_qte_appro.art_cod) LEFT JOIN 
    rq_av_lst_art_qte_cmde_autre ON iidba_ipv_article.art_cod = rq_av_lst_art_qte_cmde_autre.art_cod) LEFT JOIN 
    rq_av_lst_art_qte_entrees ON iidba_ipv_article.art_cod = rq_av_lst_art_qte_entrees.art_cod) LEFT JOIN 
    rq_av_lst_art_qte_of ON iidba_ipv_article.art_cod = rq_av_lst_art_qte_of.art_cod) LEFT JOIN 
    rq_av_lst_art_qte_sorties ON iidba_ipv_article.art_cod = rq_av_lst_art_qte_sorties.art_cod) LEFT JOIN 
    rq_av_lst_art_qte_NF ON iidba_ipv_article.art_cod = rq_av_lst_art_qte_NF.nf_composant
     
    WHERE (((iidba_ipv_article.art_cod)>"003" And (iidba_ipv_article.art_cod) Not Like "4*" And (iidba_ipv_article.art_cod) Not Like "F*") AND ((iidba_ipv_article.art_stk_ep)<>"A"));
    Les valeurs que je donne au code sont on ne peut plus simple, il s'agit de simpe date, par exemple : 12.02.2006

    Voilà tout!!

    Encore merci pour vos coups de main

    Julius

  4. #4
    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 649
    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 649
    Points : 34 353
    Points
    34 353
    Par défaut
    Ok,
    il faut adapter ton code, car le format des dates en SQL est du type #MM/DD/YYYY#.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut
    yep merci, j'ai changé le format de mes dates...

    Mais j'ai toujours ce maudit problème de passage de paramètres... crois-tu que je doive passer mes param dans VBA à mes 8 requêtes!!??

  6. #6
    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 649
    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 649
    Points : 34 353
    Points
    34 353
    Par défaut
    pour tes paramètres, quelle est ta syntaxe actuelle ?
    as-tu bien mis des "entrer la date de début", etc. ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut
    salut salut....

    Alors.... j'ai bien l'intention de régler mon soucis ce matin.... je vais regarder tout ça et je reviens donner des news

    A touti

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut
    Bonjour bonjour,

    Alors après bcp d'échec et de cheveux gris j'ai fini par trouver une solution à mon problème...

    Pour résumé, j'avais 1 requête principale regroupant 8 autres requêtes. Ces dernières doivent s'exécuter en fonction de critères saisi par l'utilisateur dans un formulaire! Me suis donc galéré pendant je ne sais combien de temps à essayer de passer ces paramètres à mes requêtes et j'ai finalement réussi.

    Il suffit tout "simplement" de faire référence aux champs que l'utilisateur saisis directement dans la requête, par exemple en créant des fonctions qui vont chercher les paramètres dont on a besoin.

    Pour les dates par exemple, j'ai créé 2 fonctions dans un module de l'application:

    get_filtre_date_debut() Et get_filtre_date_fin()

    Il suffit alors d'appeler ces fonctions dans la clause WHERE de la requête :

    WHERE monChamp BETWEEN get_filtre_date_debut() AND get_filtre_date_fin()

    Voili... merci pour l'aide et bonne fin de journée

    A+
    Julius

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/02/2014, 16h37
  2. [Débutant] cas test avec "ga" qui marche pas
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 3
    Dernier message: 05/08/2013, 15h28
  3. [AC-2007] Requête avec critère qui ne marche pas suivant la version de RunTime
    Par pio_killer dans le forum Runtime
    Réponses: 1
    Dernier message: 19/11/2011, 14h09
  4. Requete avec jointure qui marche pas
    Par gloubi dans le forum Langage SQL
    Réponses: 13
    Dernier message: 14/02/2008, 16h25
  5. requête update qui marche pas
    Par MrsFrizz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/12/2004, 08h16

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