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 :

[SQL]Requetes et filtre OpenReport


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut [SQL]Requetes et filtre OpenReport
    Bonjour,
    Je suis super nouveau sur ce forum, soyez donc indulgent
    Voila mon probleme. Je veux appeller un etat a partir d'un formulaire frmprintPreview. J'ai besoin de filtrer cet etat suivant 2 type de criteres:
    mes premiers criteres sont des dates que je recupere sur mon formulaire et que je compare aux valeurs de champs de la table Invoice.
    Mes second criteres sont invariables (verification de certains champs is Not Null ) sur la table Customers ; ces criteres ne se rapporte a aucun champ sur le formulaire .

    j'ai pour cela creer une requete que j'appelle en tant que filtre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport monEtat, aMode, MaRequete
    voici MaRequete

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Invoice.[Invoice Date], Customers.[Customer Number]
    FROM Customers INNER JOIN Invoice ON (Customers.[Customer Number] = Invoice.[Ship to Customer]) AND (Customers.[Customer Number] = Invoice.[Sold to Customer])
    WHERE (((Invoice.[Invoice Date]) Between [Forms]![frmprintPreview]![FirstInv] And [Forms]![frmprintPreview]![LastInv]) AND ((Customers.BillingEmail) Is Not Null));

    quand je suis en mode design, je teste ma requete il me demande les valeurs des dates [FirstInv] et [LastInv]) et execute la requete - tout est normal

    Pourtant quand je lance mon appli il prend les dates sur le formulaire mais me deamande la valeur de Customers.BillingEmail ?????

    Pourqquoi me demande t il la valeur de Customers.BillingEmail , je lui demande juste de verifier si ce champ n'est pas nul ???

    Merci de votre aide
    Pas d'accents sur mon clavier QWERTY !
    Merci de votre comprehension

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    j'ai fait donc un test que je te joins
    mais je ne trouve pas ton pb

  3. #3
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    bonjour,

    je pense que tu dois en premier lieu faire un état avec comme source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Invoice.[Invoice Date], Customers.[Customer Number]
    FROM Customers INNER JOIN Invoice ON (Customers.[Customer Number] = Invoice.[Ship to Customer]) AND (Customers.[Customer Number] = Invoice.[Sold to Customer])
    le critère appliqué = moncritère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        (((Invoice.[Invoice Date]) Between [Forms]![frmprintPreview]![FirstInv] And [Forms]![frmprintPreview]![LastInv]) AND ((Customers.BillingEmail) Is Not Null))
    puis tu ouvres ton état avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        DoCmd.OpenReport "mon état", acViewPreview, , moncritère
    de cette manière tu ne devrais pas avoir de problème

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    comme le dis alexandre: je t'en avais parlé en chat, la requete tu peux aussi la découper en deux ce qui est après la clause where tu le passe en filtre

    alexandre> je ne pense pas que cela viens de cela bien que cela soit plus "logique" de faire ainsi

    il m'a dit qq chose de troublant: avec si peu de champs dans sa requete il arrive à obtenir une la facture complète avec plein d'autre données.

    YesAccess>post ta sql complète et va voir du coté des événements de l'état ce qui a

  5. #5
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut ok je regarde ca
    je regarde ca, en effet je devrais verifier le contenu de ma source de donnee
    je vous tiens informe merci encore
    Pas d'accents sur mon clavier QWERTY !
    Merci de votre comprehension

  6. #6
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut Bon javance
    Ok suite aux conseils de Vodiem et Alex, jai regarde la requete se trouvant en source de donnees de mon etat. Cette requete va "pecher" tous les champs necessaire a mon etat, mais elle na aucune clause WHERE.
    Ce que jai essaye de faire, c'est de mettre dans cette requete source de donnees, ma condition sur le Billingemail not Null dans une clause WHERE.

    A ce stade si jexecute directement l'etat, jai bien tous les elements de la table Invoice avec le champ BillingEmail Not Null.

    Seulement jai aussi besoin de ma condition sur les dates, donc dans lappel de mon etat jai garde le filtre uniquement pour n'afficher que les invoices dune periode donnees.

    ce qui se passe a lexecution complete, c'est ke le Where du filtre a lappel de l'etat semble annuler le Where de ma source de donnees de l'etat.

    Comment faire ?
    Pas d'accents sur mon clavier QWERTY !
    Merci de votre comprehension

  7. #7
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut Ca marche
    Super, Ca marche;
    En fait jai fais comme vous laviez dis, jai mis dans le WHERE de la source de donnees ma condition sur le BillingEmail et dans le filtre de lappel de l'etat jai mis ma condition sur les dates
    Le resultat semble etre la requete source de donnees ( donc deja filtre sur le BillingEmail) refiltre par le filtre de lappel (donc des dates)

    Merci encore a Vodiem pour les 5h de chat hier qui 'ont beaucoup eclaire et aux conseils de Alex
    Bye
    Pas d'accents sur mon clavier QWERTY !
    Merci de votre comprehension

  8. #8
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut Pour Alex
    Jai essaye ta proposition directement mais ca ne semble pas marcher.
    Il semble que si dans ma requete source je nai pas dans le select le champ BillingEmail, je ne peut pas dans mon "criteres" faire un controle sur ce champ

    Suis je dans l'erreur
    A+
    Pas d'accents sur mon clavier QWERTY !
    Merci de votre comprehension

  9. #9
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    bonjour,

    il me semble pas que ce soit nécessaire d'avoir le champ "billingmail" par contre il est nécessaire d'avoir au moins les jointures entre les tables.
    Ensuite tu mets toute la clause "where" (date et billingmail) en ouvrant l'état et cela sans mettre le "Where" devant

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

Discussions similaires

  1. Requete SQL - Probleme de filtre
    Par jeremy L dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/07/2015, 14h33
  2. [SQL] requetes inbriquées un peu plus complexe.
    Par Devil666 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2005, 11h06
  3. [SQL] requetes inbriquées, comment faire celle ci??
    Par Devil666 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/05/2005, 15h44
  4. Requete avec filtre sur un champ
    Par podz dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/02/2005, 14h37
  5. [MS-SQL]requete sur 3 tables
    Par pascalT dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/04/2003, 11h24

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