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 :

Pb Etat / Requete analyse croisée


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut Pb Etat / Requete analyse croisée
    Bonjour,

    Après recherche sur les autres sujets du forum et sur les tutos, je ne trouve pas donc voici ma question :

    J'ai fais une requête analyse croisée.

    voici un exmple :

    année - de 30 ans 31 à 40 ans 41 à 50 ans +51 ans
    2000 124 415 245 14
    2001 457 45 32 2
    2002 245 213 89 8
    ect...

    Après le choix d'un type de produit, cette requête compte le nombre d'acheteurs par tranche d'âge.

    J'ai réalisé un état à partir de cette requête.

    voici mon problème : pour certains produits, une des tranches d'âge peut être vide.

    J'ai par exemple :

    année - de 30 ans 31 à 40 ans 41 à 50 ans
    2000 724 245 275
    2001 857 245 45
    2002 745 413 8
    ect...

    Donc si je veux ouvrir l'état, il me dis que le champ "plus de 51 ans" est manquant... et donc pas d'affichage.

    Comment faire pour garder le même état pour tout les clients, mais que si un champ est manquant, que 0 soit mis à la place ?

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Construire une requête à partir de ta requête Analyse croisée déjà établie et mettre une formule à partir de la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IIF(Expression; True; False)
    Cette requête sera alors la source de ton état.

    Ou encore, construire la requête et les étiquettes avec VBA et parcourir la collection de champs. Pour cahque champ absent, mettre 0 comme valeur tout en gardant l'étiquette.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Dans la fonction IIF : dans l'expression je mets quoi exactement ??? J'ai essayé plusieurs choses, mais ça ne fonctionne pas !!!

    Je pense que c'est IIF (champs existe,champ,0) mais comment écrire ça correctement ?

    Merci de ton aide car je débute en Access !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Voici 2 résultats de la même requête pour 2 clients différents :

    AnneeSOUS Total de comptage Jeune Middle Senior
    2003 12536 5448 6882 206
    2004 18645 7960 10306 379
    2005 18585 10175 8080 330
    2006 2107 1354 696 57


    AnneeSOUS Total de comptage Jeune Middle
    2005 4388 2536 1852
    2006 4830 2865 1965


    La catégorie "Senior" n'apparait pas dans le résultat dans le deuxième cas. Mais je voudrais utiliser le même état pour l'ensemble des clients.

    Donc comment utiliser le IIF() ???

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Moi non plus je ne vois pas comment utiliser les iif.

    J'ai eu un cas semblable avec des ventes et j'ai ajouté à ma requéte source de la requète croisée, avec une requète union une série de ventes à 0, une pour chaque mois, comme cela j'avais toujours des valeurs pour tous mes mois.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par marot_r
    J'ai eu un cas semblable avec des ventes et j'ai ajouté à ma requéte source de la requète croisée, avec une requète union une série de ventes à 0, une pour chaque mois, comme cela j'avais toujours des valeurs pour tous mes mois.
    Dans ma requête union je compte le nombre de personne, donc même si je mets les valeurs à zéro, pour chaque catégorie, ça me fera une personne en plus, que je retrancherai systématiquement. C'est possible, j'aurai alors toutes les catégories.

    Je vais essayer, mais si quelqu'un peut répondre à propos du IIF() ça serait super.

  7. #7
    Membre actif Avatar de ActionAccess
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 213
    Points
    213
    Par défaut
    Bonjour,

    Pour être sûr que toutes les colonnes attendues dans l'état seront toujours présentes dans la requête Analyse Croisée, même dans le cas où pour l'un des éléments il n'y a pas de valeur, vous pouvez regarder la propriété ColumnHeadings qui permet de spécifier en dur les champs que l'on souhaite voir apparaître.
    Pour reprendre l'exemple ci-dessus,
    "Jeune" ; "Middle" ; "Senior"

    Comme indiqué dans l'aide, les valeurs indiquées dans ColumnHeadings doivent correspondre EXACTEMENT à des valeurs possibles.

    Espérant vous avoir aidé,

    Cdlt,
    ActionAccess

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Merci pour votre réponse : mais où dois je utiliser ColumsHeadings ? Dans la requête analyse croisée ou bien en VBA ?

    Pour le nom des colonnes, il n'y a pas de problème, ceux sont toujours les mêmes, soit Jeune, soit Middle soit Senior : donc là pas de problème.

  9. #9
    Membre actif Avatar de ActionAccess
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 213
    Points
    213
    Par défaut
    ColumsHeadings est accessible directement dans la requête Analyse Croisée en cliquant droit sur la grand partie grisée au dessus de là où on met les champs.
    Elle s'appelle en français "En-têtes de colonne".

    F1 pour plus d'info.

    Cdlt,
    ActionAccess

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Super merci Ca marche très bien !

    Ce forum est super : je trouve tout ce qu'il me faut rapidement !

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

Discussions similaires

  1. crée etat avec requete analyse croisée
    Par popofpopof dans le forum IHM
    Réponses: 23
    Dernier message: 06/10/2007, 09h30
  2. Réponses: 7
    Dernier message: 09/05/2007, 21h42
  3. Etat basé sur une Requete Analyse Croisée
    Par Bercud dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/06/2006, 16h03
  4. Requete Analyse Croisée
    Par beurnoir dans le forum Access
    Réponses: 7
    Dernier message: 15/11/2005, 10h38
  5. Requete Analyse croisée en VBA, Reconnait pas "TRANSFOR
    Par samlepiratepaddy dans le forum Access
    Réponses: 2
    Dernier message: 20/10/2005, 08h58

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