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 ou sous requête ? fonction compte pour plusieurs critères [AC-2010]


Sujet :

Access

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2017
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Requête ou sous requête ? fonction compte pour plusieurs critères
    Bonjour à tous,

    Je suis nouvelle sur le forum et débutante avec le logiciel Access. J'ai appris beaucoup de choses grâce au forum et aux différents tuto que j'ai trouvé sur le site.
    Je cale cependant sur un résultat que je voudrais obtenir. J'ai cherché des infos mais ca ne m'a pas complètement aidée.

    Je m'explique :
    J'ai calculé dans une requête une surface totale à partir de 4 colonnes différentes (surface 1 + surface 2 + surface 3 + surface 4).
    J'obtiens donc un tableau avec diverses colonnes : commune, exploitation (plusieurs lignes car plusieurs exploitations par commune), surface 1, surface 2, surface 3, surface 4, total surface.

    A présent, je voudrais obtenir la répartition du nombre d'exploitations par commune dont la surface est < 10 hectares , puis celle qui est comprise entre 10 et 50 hectares puis > 50 hectares.

    J'ai pu créer la requête permettant de calculer la surface < 10 hectares, mais je n'arrive pas à créer une requête permettant de visualiser plusieurs critères distincts, c'est à dire, d'obtenir dans un seul tableau la répartition du nombre d'exploitations par surface.
    Faut il que je fasse une sous requête pour chaque tranche de surface concernée ? Y aurait il une autre possibilité ?

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Points : 4 299
    Points
    4 299
    Par défaut
    Salut,

    Pour faire çà, je passerai par un TCD. Et oui, ils existent aussi sur Access.
    pour commencer, place toi, sur la requête (table) source)
    Vas dans l'onglet Créer, Plus de formulaires et Tableau Croisé dynamique.
    En ligne mets les surface.
    En données, mets les noms de communes (par exemple)
    Ensuite, via la fenêtre des propriétés, tu as la possibilité de mettre en place une notion d'intervalle comme dans l'illustration ci-dessous.
    Nom : TCD access.jpg
Affichages : 248
Taille : 62,4 Ko

    En espérant que cela correspond à ta demande.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2017
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Bonjour et merci pour ta réponse.

    J'étais passé par le TCD mais je ne connaissais pas cette notion d'intervalle qui est bien pratique.
    Cependant, elle ne permet pas de faire des intervalles différents, on ne peut passer que de 50 en 50 par exemple. Ca coince si on souhaite les intervalles suivants :
    < 10
    de 10 à 50
    50 à 100
    > 100

    Par ailleurs, je ne suis pas sûre qu'il soit possible de passer ensuite ces résultats sous forme d'état. En effet, lorsque j'ajoute ce résultat dans un état déjà créé, je ne peux pas manier les étiquettes comme souhaité. le TCD semble statique ?

  4. #4
    Expert confirmé Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Points : 4 299
    Points
    4 299
    Par défaut
    Salut,

    pour avoir le résultat
    < 10
    de 10 à 50
    50 à 100
    > 100

    il te suffit de modifier le paramètre "Fin" dans le feuille de propriétés. Tu le passes à 100 (au lieu de 50) et le tour est joué.

    Si maintenant, le coté esthétique est important, alors on peut faire autrement.
    Tu créés une nouvelle requête (avec ou sans assistant)
    Tu créés un champs calculé qui va permettre de définir les intervalles. il y aura une formule du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    intervalle: VraiFaux([surface]<10;"petit";VraiFaux([surface]<50;"moyen";"grand"))
    voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    intervalle: VraiFaux([surface]<10;"petit";VraiFaux([surface]<50;"moyen";VraiFaux([surface]<100;"grand";"très grand")))
    Une fois ce champs ajouté, tu actives la fonction de regroupement.
    En mode création de la requête, onglet "Créer", bouton "Totaux" comme la somme automatique d'Excel.
    Cela ajoute, une ligne dans la grille de la requête.

    Sous la colonne calculée, tu laisses "Regroupement"
    Sous la colonne Communes (par exemple) tu mets "Compte"

    Et là tu as ce que tu veux sous la forme d'une requête que tu utilise ensuite dans un etat pour faire tout beau tout plein !!

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2017
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    J'ai testé la 2eme solution avec le champs calculé "intervalle" et ca fonctionne
    Un grand merci ! C'est tout à fait ce que je voulais obtenir et ca me permettra de l'intégrer comme il faut dans un état.

    Pour le premier point, j'avais fait comme tu as dit : modifier le paramètre "Fin" dans le feuille de propriétés en le passant à 100 mais les intervalles n'étaient pas comme je le souhaitais :
    0-10
    10-60
    60-100
    >100
    Je ne trouve pas la solution... Même si le champs calculé est ce que je vais utiliser, j'aurais bien aimé comprendre mon erreur dans le TCD

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

Discussions similaires

  1. Sous requête de sous requête qui ne marche pas
    Par mactwist69 dans le forum Développement
    Réponses: 2
    Dernier message: 27/10/2016, 17h24
  2. [AC-2013] Requête et sous requête pour rapatrier le bon multiplicateur selon une date
    Par stum32 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 24/05/2016, 09h21
  3. Réponses: 7
    Dernier message: 11/03/2016, 10h04
  4. Formulaire pour plusieurs critères dans une requète
    Par toniodelavega dans le forum IHM
    Réponses: 4
    Dernier message: 06/08/2010, 11h19
  5. Requête de sélection avec fonction "compte"
    Par KEROZEN dans le forum Access
    Réponses: 3
    Dernier message: 25/05/2006, 10h11

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