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 :

Interférence entre 2 requêtes


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut Interférence entre 2 requêtes
    Bonjour,

    J'ai un problème que je n'arrive pas à résoudre.

    J'ai deux requêtes: l'une qui liste tous les clients en France, l'autre les clients à l'étranger. Ce critère provient d'une table "Pays" 1=France; 2=Allemagne;3=Espagne...

    Dans la première requêtes j'ai précisé dans "IDPays" le critère 1 et j'ai la liste des clients France dont je peux consulter la fiche.
    Dans la seconde j'ai inscris dans le critère "IDPays" <> 1 et j'ai la liste des clients étrangers mais lorsque je consulte la fiche elle est vide.

    Je pense qu'il y a une interférence entre les deux requêtes mais je n'arrive pas à comprendre quoi !
    Pourriez-vous m'expliquer d'où vient ce problème ?

    Avec mes remerciements

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Maringot,

    Pas bien clair, ton problème.

    Sans parler de "fiche", dans un premier temps :
    • Quand tu exécutes la requête avec IDPays=1, obtiens-tu bien la liste des clients en France ?
    • Quand tu exécutes la requête avec IDPays<>1, obtiens-tu bien la liste des clients à l'étranger ?

  3. #3
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 526
    Points : 16 463
    Points
    16 463
    Par défaut
    Bonjour

    Question complémentaire à celle de Richard_35 : comment se fait le lien entre le table des clients et celle qui contient les codes pays ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    La requête 1 liste tous les appels des clients en France.
    La requête 2 liste tous les appels des clients sauf ceux en France.

    La requête 1 est basée sur les T-Client et T-FicheAppel: elle inclue le champ "IDPays" de la T-FicheAppel: le critère est "1"

    "Pays" étant une table liée à la fiche appel via "Assistant liste de choix".

    La requête 2 est basée sur T-Client et T-FicheAppel: elle inclue le champ "IDPays" de la T-FicheAppel: le critère est <>1.

    La liste d'appels en France récapitule toutes les fiches d'appels. Je peux les consulter et les modifier sans difficultés.
    S'agissant des fiches d'appels de l'étranger, j'ai bien la liste mais lorsque j'ouvre la fiche il n'y a pas d'informations.

    C'est pourquoi, malgré les 2 requêtes distinctes, je pense que la notion "1" et "<>1" dans le champ "IDPays" s'interfèrent, mais je ne vois pas comment résoudre ce problème...

  5. #5
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour,

    Je n'ai pas compris donc je repose la question :

    1- Quand tu exécutes la requête seule avec IDPays=1, obtiens-tu bien la liste des clients en France (sans passer par les fiches) ?

    2- Quand tu exécutes la requête seule avec IDPays<>1, obtiens-tu bien la liste des clients à l'étranger (sans passer par les fiches) ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    La requête 1 ouvre la liste des appels des clients en France.
    La requête 2 ouvre la liste des appels des clients à l'étranger.

    Ce n'est que lorsque je double-clic sur la ligne de la liste que j'ouvre la fiche.

  7. #7
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    OK : les requêtes sont correctes.

    Le problème est donc dans ton formulaire "fiche" : il faut vérifier la source de donnée.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Donc OK pour les requêtes.
    Dans le formulaire "Liste appels France" il y a un n° de fiche (IDFiche). Lorsque je double clic dessus la fiche d'appel s'ouvre. La procédure événementielle sur double clic est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub IDFiche_DblClick(Cancel As Integer)
    DoCmd.OpenForm "FORM-APPEL", acNormal, , "[IDFiche] =Forms![FORM-LISTING APPELFR]![IDFiche]"
    End Sub
    Quant au formulaire "Liste appels étranger", le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub IDFiche_DblClick(Cancel As Integer)
    DoCmd.OpenForm "FORM-APPEL", acNormal, , "[IDFiche] =Forms![FORM-LISTE APPELETR]![IDFiche]"
    End Sub
    Et c'est à ce moment là que la fiche d'appel ne contient plus le détail de l'appel...

  9. #9
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Maringot,

    Comment s'appelle ton formulaire "Liste appels France" ?
    Comment s'appelle ton formulaire "Liste appels étranger" ?

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour Richard_35,

    Mes listings s'appellent "Appels France" et "Appels Étranger".

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Rectificatif :

    La liste des appels France s'appelle "FORM-LISTING APPELFR" (la légende étant "APPELS FRANCE")

    La liste des appels Etranger s'appelle "FORM-LISTING APPELETR" (la légende étant "APPELS ETRANGER").

  12. #12
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Maringot,

    Citation Envoyé par Maringot
    Mes listings s'appellent "Appels France" et "Appels Étranger".
    Cela ne correspond pas aux noms que tu indiques dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[IDFiche] =Forms![FORM-LISTING APPELFR]![IDFiche]"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[IDFiche] =Forms![FORM-LISTE APPELETR]![IDFiche]"

  13. #13
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Maringot
    Rectificatif :
    La liste des appels France s'appelle "FORM-LISTING APPELFR" (la légende étant "APPELS FRANCE")
    La liste des appels Etranger s'appelle "FORM-LISTING APPELETR" (la légende étant "APPELS ETRANGER").
    Alors tu as trouvé, toi-même, où est l'erreur... CQFD.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Re bonjour,

    Où est la solution ?

    Je reprends: la fiche d'appel se nomme "FORM-APPEL" elle comprend un n° "IDFiche".

    Dans la requête qui ouvre le listing des appels France, le formulaire "FORM-APPELFR" a le critère "1". J'ouvre le formulaire qui liste les appels en France et ça fonctionne.

    Lorsque je double clic sur la ligne de l'appel qui m'intéresse, la fiche s'ouvre via le n° "IDFiche" donc j'écris dans procédure "sur double clic"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "FORM-APPEL", acNormal, , "[IDFiche] =Forms![FORM-LISTING APPELFR]![IDFiche]"
    et ça fonctionne, je visualise tous les renseignements.

    J'utilise la même trame en mettant le critère "<>1" dans la requête qui ouvre le listing des appels étranger. J'ouvre le formulaire qui liste les appels étranger et ça fonctionne.

    Pour ouvrir sur double clic la fiche d'appel qui m'intéresse j'écris la même procédure que précédemment à ceci près que c'est "FORM-LISTING APPELETR" et là la fiche ne contient aucun renseignement !!!

    Donc je ne vois pas où est la solution...puisque j'ai bien différencier les 2 FORM-LISTING APPEL, l'un est FR, l'autre est ETR...

  15. #15
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Maringot
    La liste des appels Etranger s'appelle "FORM-LISTING APPELETR" (la légende étant "APPELS ETRANGER").
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[IDFiche] =Forms![FORM-LISTE APPELETR]![IDFiche]"
    Il semble que, dans le code, tu aies indiqué un nom différent, non ?

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    mélangeage de terme lors de mes différents post.

    Je confirme mes formulaires s'appellent "FORM-LISTING APPELFR" et "FORM-LISTING APPELETR".

    A force de regarder ces codes et de chercher la boulette, et bien j'en fais.

  17. #17
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Donc, si j'ai bien compris, tu as trouvé ton erreur dans le code VBA.
    tu as écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[IDFiche] =Forms![FORM-LISTE APPELETR]![IDFiche]"
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[IDFiche] =Forms![FORM-LISTING APPELETR]![IDFiche]"

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Non, je me suis trompé dans mon 1er message.

    Depuis le début les formulaires s'appellent LISTING et non pas Liste. J'ai fait une erreur en écrivant la première fois le message.

    Donc le problème reste entier, après avoir tous revérifié, les fiches d'appel de mon listing appel étranger sont vides.

    Or dès que je retire le critère <>1 dans la requête appels étranger, je peux les visualiser.

  19. #19
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Es-tu sûr que ton formulaire FORM-LISTING APPELETR ne contient pas un test d'exclusion "en dur" (dans le formulaire ou dans le code associé) ?

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    C'est quoi en test d'exclusion en dur ?

Discussions similaires

  1. [MySQL] Différence entre 2 requêtes
    Par ozzmax dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/05/2006, 17h29
  2. Comment mettre les relations entre mes requêtes?
    Par cheickssy dans le forum Access
    Réponses: 2
    Dernier message: 22/03/2006, 18h42
  3. Interférence entre références ?!
    Par janou dans le forum Access
    Réponses: 2
    Dernier message: 12/12/2005, 19h36
  4. Résultats différent entre une requête SQL, et la même en VBA
    Par thetaps dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/09/2005, 13h05
  5. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 10h37

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