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

Access Discussion :

Requête Select ne prenant pas en compte les paramètres choisis dans mon formulaire [AC-2013]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Apprenti Ingénieur Généraliste
    Inscrit en
    Février 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Apprenti Ingénieur Généraliste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2017
    Messages : 35
    Points : 30
    Points
    30
    Par défaut Requête Select ne prenant pas en compte les paramètres choisis dans mon formulaire
    Bonjour,

    Situation actuelle : formulaire composé de listes déroulantes dont les valeurs servent de paramètres à une requête Select nommée "Query_2" , elle-même appliquée à un bouton nommé "Afficher".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Afficher_Click()
    DoCmd.OpenQuery "Query_2"
    End Sub
    Pour utiliser les valeurs choisies dans mes listes déroulantes, j'ai utilisé le code suivant dans les critères des champs de ma requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Formulaires]![NomDuFormulaire]![NomObjetListeDéroulante]
    À savoir que ces codes fonctionnent parfaitement dans un formulaire similaire.
    De plus,lorsque je rentre manuellement les valeurs des paramètres lors de l'ouverture de ma requête, j'obtiens le résultat voulu.

    Problème : lorsque je lance ma requête via le formulaire, il semble que les valeurs définies dans les listes déroulantes ne soient pas prises en compte et le résultat est donc une liste vide.

    Voyez-vous d'où vient le problème?

    Merci d'avance pour vos réponses

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Peux-tu poster le SQL de la requête concernée ?

    A+

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Apprenti Ingénieur Généraliste
    Inscrit en
    Février 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Apprenti Ingénieur Généraliste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2017
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Bien sûr, le code SQL est le même que dans la discussion précédente "Modification d'enregistrements via formulaire d'affichage", à savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT PPMS.*, Lot_Avion.Num_Lot, Lot_Avion.Standard_Final
    FROM Standard INNER JOIN (((Lot_Avion INNER JOIN MSN ON Lot_Avion.Num_Lot = MSN.num_Lot) 
                               INNER JOIN ((WP INNER JOIN MS ON WP.designation_WP = MS.designation_WP) 
                                   INNER JOIN [MS/WP] ON (WP.designation_WP = [MS/WP].designation_WP) AND (MS.Num_MS = [MS/WP].num_MS)) 
                                       ON MSN.ref_MSN = WP.ref_MSN) INNER JOIN PPMS ON MS.Num_MS = PPMS.num_MS) 
                               ON (Standard.Standard = MSN.Standard_actuel) AND (Standard.Standard = Lot_Avion.Standard_Final)
    WHERE (((Lot_Avion.Num_Lot)=[Formulaires]![Afficher la liste des PPMS]![Num_Lot]) AND ((Lot_Avion.Standard_Final)=[Formulaires]![Afficher la liste des PPMS]![Standard_Final]));
    Merci beaucoup pour ton aide multiple

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    À priori cela devrait marcher.

    Essaye d'ouvrir ""Query_2" (en passant à moins que ce soit un test, je t'invite à lui donner un nom un peu plus significatif) directement sans passer par le code avec le formulaire [Afficher la liste des PPMS] ouvert.
    Est-ce que cela te donnes le résultat attendu ?

    Si non, essaye la même chose avec le formulaire [Afficher la liste des PPMS] fermé. Access devrait te demander de saisir les paramètres.

    Enfin tu peux altérer le code SQL pour :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT PPMS.*, Lot_Avion.Num_Lot, Lot_Avion.Standard_Final, [Formulaires]![Afficher la liste des PPMS]![Num_Lot] as [prmLot], [Formulaires]![Afficher la liste des PPMS]![Standard_Final] as [prmStandard]
    FROM Standard INNER JOIN (((Lot_Avion INNER JOIN MSN ON Lot_Avion.Num_Lot = MSN.num_Lot) 
                               INNER JOIN ((WP INNER JOIN MS ON WP.designation_WP = MS.designation_WP) 
                                   INNER JOIN [MS/WP] ON (WP.designation_WP = [MS/WP].designation_WP) AND (MS.Num_MS = [MS/WP].num_MS)) 
                                       ON MSN.ref_MSN = WP.ref_MSN) INNER JOIN PPMS ON MS.Num_MS = PPMS.num_MS) 
                               ON (Standard.Standard = MSN.Standard_actuel) AND (Standard.Standard = Lot_Avion.Standard_Final)
    WHERE (((Lot_Avion.Num_Lot)=[Formulaires]![Afficher la liste des PPMS]![Num_Lot]) AND ((Lot_Avion.Standard_Final)=[Formulaires]![Afficher la liste des PPMS]![Standard_Final]));

    cela va te permettre de voir ce que Access voit comme paramètre de sélection.

    Note que les retours à la ligne devant les INNER et les ON sont pour une meilleur lisibilité, il faudra probablement les enlever dans l'éditeur de SQL d'Access.

    Un dernier test si rien ne marche avant est de supprimer la clause WHERE et de voir si tu as des donnnées. Parfois l'absence de données ne vient pas du filtre mais des jointures.
    Si ce n'est pas les jointures, rajouter les champs de filtre, un à la fois et voir à quel champ on perd les données.

    A+

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Apprenti Ingénieur Généraliste
    Inscrit en
    Février 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Apprenti Ingénieur Généraliste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2017
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Essaye d'ouvrir ""Query_2" (en passant à moins que ce soit un test, je t'invite à lui donner un nom un peu plus significatif) directement sans passer par le code avec le formulaire [Afficher la liste des PPMS] ouvert.
    Est-ce que cela te donnes le résultat attendu ?
    Non, le résultat est vide.

    Citation Envoyé par marot_r Voir le message
    Si non, essaye la même chose avec le formulaire [Afficher la liste des PPMS] fermé. Access devrait te demander de saisir les paramètres.
    Dans ce cas-ci, j'obtiens le résultat voulu.

    Citation Envoyé par marot_r Voir le message
    cela va te permettre de voir ce que Access voit comme paramètre de sélection.
    MERCI, ton code m'a permis de voir que l'entrée de ma 1ère liste déroulante était répercutée dans la 2ème liste (sans savoir pourquoi), j'ai donc recréé la 2ème liste avec l'assistant requête et remis mon code initial. Tout marche!

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

Discussions similaires

  1. [VxiR2] Graphique ne prenant pas en compte les jours sans données
    Par walach dans le forum Deski
    Réponses: 7
    Dernier message: 19/01/2012, 20h36
  2. [AC-2000] Requète de sous formulaire ne prend pas en compte les changements
    Par switchON dans le forum VBA Access
    Réponses: 11
    Dernier message: 26/05/2011, 09h49
  3. [JavaFlashBridge] Ne prend pas en compte les paramètres IE
    Par OsTaLaKaR dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 10/09/2010, 16h58
  4. recuperer les objects DOM dans mon formulaire
    Par billyrose dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/06/2009, 14h21
  5. Réponses: 7
    Dernier message: 16/03/2009, 10h40

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