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

VBA Access Discussion :

Calculer le nombre d'usagers par tranche d'âge.


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut Calculer le nombre d'usagers par tranche d'âge.
    Bonjour à tous,
    En vue de réaliser les statistiques annuelles, je souhaite calculer le nombre d'usagers en fonction de tranches d'âge et cela toujours à partir de la date de naissance.
    Les tranches d'âge sont de :
    0 à 18 ans - 18 à 20 ans - 20 à 30 ans - 30 à 40 ans - 40 à 50 ans - 50 à 60 ans - 60 à 70 ans - 70 à 80 ans - 80 à 90 ans - 90 à 100 ans - + de 100 ans
    Pouvez-vous m'aider à réaliser cette demande.
    D'avance je vous remercie.

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Bonsoir
    Une solution ici
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  3. #3
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Nous avons peu d'informations sur la structure de ta base de données. La Structure de tes tables et les champs que tu souhaites manipuler.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut
    Bonjour à tous,
    J'ai été amené à modifier une requête initiale pour calculer le nombre d'usagers par tranche d'âge.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    SELECT [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Sexe, [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Date_naissance, Count([Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].[Date de la course]) AS [CompteDeDate de la course],
    Switch(
    age<18,"moins de 18 ans",
    age>17 And age<20,"entre 17 et 20 ans",
    age>19 And age<30,"entre 19 et 30 ans",
    age>29 And age<40,"entre 29 et 40 ans",
    age>39 And age<50,"entre 39 et 50 ans",
    age>49 And age<60,"entre 49 et 60 ans",
    age>59 And age<70,"entre 59 et 70 ans",
    age>69 And age<80,"entre 69 et 80 ans",
    age>79 And age<90,"entre 79 et 90 ans",
    age>89 And age<100,"entre 89 et 100 ans",
    age>99 And age<110,"entre 99 et110 ans") AS trancheAge
    FROM [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement]
    GROUP BY [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Sexe, [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Date_naissance,
    Switch(
    age<18,"moins de 18 ans",
    age>17 And age<20,"entre 17 et 20 ans",
    age>19 And age<30,"entre 19 et 30 ans",
    age>29 And age<40,"entre 29 et 40 ans",
    age>39 And age<50,"entre 39 et 50 ans",
    age>49 And age<60,"entre 49 et 60 ans",
    age>59 And age<70,"entre 59 et 70 ans",
    age>69 And age<80,"entre 69 et 80 ans",
    age>79 And age<90,"entre 79 et 90 ans",
    age>89 And age<100,"entre 89 et 100 ans",
    age>99 And age<110,"entre 99 et110 ans");

    En exécutant la requête, une fenêtre "Entrer une valeur de paramètre ?" s'ouvre, comportant la mention "age".
    Je n'entre aucune valeur pour paramètrer l'age et je clique sur "OK". J'obtiens une requête avec les champs "Sexe, Date de naissance, Compte deDate de la course et trancheAge. Ce dernier champ ne comporte auucune valeur.
    Est-ce que quelqu'un veut bien m'aider pour résoudre le problème.
    Je reste à votre disposition pour tout complément d'information.
    Je vous remercie d'avance

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    s'agissant de l'erreur "entrez la valeur de paramètre" : est-ce que le champ [age] est bien dans la table ou la requête [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement] ?
    Autre chose ton code contient des erreurs de tests d'inclusion :
    age>17 And age<20,"entre 17 et 20 ans" : ne prend que les ages entre 18 et 19 ans car > et < sont les signes pour strictement supérieur et strictement inférieur, ce qui ne correspond pas à l'intitulé de la tranche d'âge.
    il faudrait mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    age>17 and age <=20,"entre 18 et 20 ans"
    ' ou
    age>17 and age <21,"entre 18 et 20 ans"
    ' ou encore
    age between 18 and 20,"entre 18 et 20 ans"
    Faire de même pour les autres tranches, ou alors changer les intitulés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    age>19 And age<30,"entre 20 et 29 ans",
    age>29 And age<40,"entre 30 et 39 ans",
    ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut ),] ou élément absent dans l'expression "Switch( age<18,"moins de 18 ans",
    Bonjour tee_grandbois.
    J'ai une 1ière requête où je fais un regroupement que voici :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT [Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee].[N° Course], Courses.[N° Chauffeur], [Age Usagers].[N° Usager], [Age Usagers].Nom, [Age Usagers].Prénom, [Age Usagers].Sexe, [Age Usagers].Date_naissance, [Age Usagers].Age
    FROM [Age Usagers] INNER JOIN (Courses INNER JOIN [Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee] ON Courses.[N° Course] = [Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee].[N° Course]) ON [Age Usagers].[N° Usager] = Courses.[N° Usager]
    GROUP BY [Stat 091 Courses Ponctuelles Modif Criteres Recherche Annee].[N° Course], Courses.[N° Chauffeur], [Age Usagers].[N° Usager], [Age Usagers].Nom, [Age Usagers].Prénom, [Age Usagers].Sexe, [Age Usagers].Date_naissance, [Age Usagers].Age;
    et une seconde dans laquelle je fais le compte et que voici :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    SELECT [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Sexe, Count([Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Age) AS CompteDeAge,
    Switch(
    SELECT [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Sexe, Count([Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Age) AS CompteDeAge,
    Switch(
    age<18,"moins de 18 ans",
    age>17 And age<19,"entre 18 et 19 ans",
    age>19 And age<30,"entre 20 et 29 ans",
    age>29 And age<40,"entre 30 et 39 ans",
    age>39 And age<50,"entre 40 et 49 ans",
    age>49 And age<60,"entre 50 et 59 ans",
    age>59 And age<70,"entre 60 et 69 ans",
    age>69 And age<80,"entre 70 et 79 ans",
    age>79 And age<90,"entre 80 et 89 ans",
    age>89 And age<90,"entre 90 et 99 ans",
    age>99 And age<100,"entre 100 et 109 ans"), AS trancheAge
    FROM [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement]
    GROUP BY [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Sexe, Switch(
    age<18,"moins de 18 ans",
    age>17 And age<19,"entre 18 et 19 ans",
    age>19 And age<30,"entre 20 et 29 ans",
    age>29 And age<40,"entre 30 et 39 ans",
    age>39 And age<50,"entre 40 et 49 ans",
    age>49 And age<60,"entre 50 et 59 ans",
    age>59 And age<70,"entre 60 et 69 ans",
    age>69 And age<80,"entre 70 et 79 ans",
    age>79 And age<90,"entre 80 et 89 ans",
    age>89 And age<90,"entre 90 et 99 ans",
    age>99 And age<100,"entre 100 et 109 ans");
    Lorsque je veux exécuter cette dernière requête, une fenêtre "Téléservice - Permanence téléphonique" apparaît comportant la mention "),] ou élément absent dans l'expression "Switch(
    age<18,"moins de 18 ans",
    age>17 And age<19,"entre 18 et 19 ans",
    age>19.
    Lorsque je clique sur "OK" la partie du code ci-dessous est sélectionné.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    SELECT [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Sexe, Count([Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Age) AS CompteDeAge,
    Switch(
    age<18,"moins de 18 ans",
    age>17 And age<19,"entre 18 et 19 ans",
    age>19 And age<30,"entre 20 et 29 ans",
    age>29 And age<40,"entre 30 et 39 ans",
    age>39 And age<50,"entre 40 et 49 ans",
    age>49 And age<60,"entre 50 et 59 ans",
    age>59 And age<70,"entre 60 et 69 ans",
    age>69 And age<80,"entre 70 et 79 ans",
    age>79 And age<90,"entre 80 et 89 ans",
    age>89 And age<90,"entre 90 et 99 ans",
    age>99 And age<100,"entre 100 et 109 ans"), AS trancheAge
    FROM [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement]
    GROUP BY [Stat 17 Courses Ponctuelles selon Sexe et Age Regroupement].Sexe, Switch(
    age<18,"moins de 18 ans",
    age>17 And age<19,"entre 18 et 19 ans",
    age>19 And age<30,"entre 20 et 29 ans",
    age>29 And age<40,"entre 30 et 39 ans",
    age>39 And age<50,"entre 40 et 49 ans",
    age>49 And age<60,"entre 50 et 59 ans",
    age>59 And age<70,"entre 60 et 69 ans",
    age>69 And age<80,"entre 70 et 79 ans",
    age>79 And age<90,"entre 80 et 89 ans",
    age>89 And age<90,"entre 90 et 99 ans",
    age>99 And age<100,"entre 100 et 109 ans");
    Est-ce que vous ou quelqu'un d'autre peut m'aider à ce que j'obtienne le nombre d'usagers par tranche d'âge ?
    Merci d'avance

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    cela m'avait échappé, la virgule (en rouge) est à enlever:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    age>99 And age<100,"entre 100 et 109 ans"), AS trancheAge
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut Requête réussie
    Merci tee_grandbois
    Grâce à ton concours je suis parvenu à réaliser le requête pour calculer le nombre d'usagers par tranche d'age pour unz année déterminée.
    Encore merci

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select sum([entre 18 et 19 ans]) from(
    Select iif(age>17 And age<19,1,0) as [entre 18 et 19 ans] from table)

    J'ai considéré que tu prendrais en compte les individus âgés de 19 ans ce que tu envisages pas dans ton exemple.
    Dernière modification par Invité ; 05/06/2018 à 18h05.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2014
    Messages : 58
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Bonsoir,
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select sum([entre 18 et 19 ans]) from(
    Select iif(age>17 And age<19,1,0) as [entre 18 et 19 ans] from table)

    J'ai considéré que tu prendrais en compte les individus âgés de 19 ans ce que tu envisages pas dans ton exemple.
    Bonsoir dysorthographie,
    Merci de ta proposition mais tee_grandbois m'a dobbé le code sql me fournissant la réponse à mon souci.
    Merci encore.

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    tee_grandbois m'a dobbé le code sql
    je pense que tu voulais taper "donné", car "dobbé" cela fait penser à "daubé" !!!
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tee_grandbois un bonimenteur ?

    C'est moi qui ai la maladie de l'horographe (dysorthographie)!

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

Discussions similaires

  1. [VxiR2] Calcul du nombre de jours par mois entre deux date
    Par trabelsi dans le forum Designer
    Réponses: 4
    Dernier message: 02/10/2017, 15h17
  2. Calcul du nombre de ligne par tache
    Par Angeldu74 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 22/06/2009, 18h32
  3. Réponses: 6
    Dernier message: 12/01/2008, 18h21
  4. Calcul du nombre d'images par seconde
    Par Mindiell dans le forum SDL
    Réponses: 5
    Dernier message: 19/03/2007, 22h12
  5. Réponses: 3
    Dernier message: 23/06/2006, 11h53

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