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 :

Arrondir à l'inférieur le nombre d'année entre deux dates


Sujet :

Access

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 61
    Points : 50
    Points
    50
    Par défaut Arrondir à l'inférieur le nombre d'année entre deux dates
    Bonjour,

    Voici une requête Access pour connaître l'âge d'une personne en années :

    AgeAn: DiffDate("yyyy";[DateNaiss];Maintenant()).

    Le résultat donne 26 pour une personne qui est née le 22.11.1994 alors qu'elle n'a pas encore 26 ans révolus.

    Comment obtenir 25 ans ?

    Merci d'avance pour votre réponse !

    Belle fin de week-end.
    SuzyR

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 97
    Points
    97
    Par défaut Arrondir à l'inférieur le nombre d'année entre deux dates
    Bonjour,

    J'utilise cette fonction pour avoir l'age par rapport à la date du jour ou d'une date précise (par exemple la date de début d'une compétition,d'un événement):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function CalculAge2(DateNaissance As Date, Optional dateReference As Date)
    If dateReference = 0 Then dateReference = Date
    CalculAge2 = Year(dateReference) - Year(DateNaissance) + _
    (Format(DateNaissance, "mmdd") > Format(dateReference, "mmdd"))
    End Function
    Cordialement
    Riton

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 61
    Points : 50
    Points
    50
    Par défaut
    Bonsoir Riton,

    Merci beaucoup !!

    Belle soirée.
    SuzyR

  4. #4
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 61
    Points : 50
    Points
    50
    Par défaut
    Bonsoir,

    Je me permets de revenir vers vous, car j'ai utilisé la fonction dans une requête et ça fonctionne très bien.

    Par contre, quand je veux mettre un critère, par exemple 9, pour obtenir toutes les personnes qui ont 9 ans, le message suivant s'affiche :

    "Type de données incompatibles dans l'expression du critère."

    J'ai essayé de déclarer la fonction en Integer mais ça ne fonctionne pas.

    Voici la requête :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CalculAge([DateNaiss]) AS AgeAn
    FROM T_Enfant
    WHERE (((CalculAge([DateNaiss]))=9));

    Merci !

    Merci d'avance pour votre aide !!

    SuzyR

  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
    bonsoir,
    le résultat de la fonction retourne un Variant (fonction déclarée sans type)
    3 solutions:
    - mettre des apostrophes ou des guillemets autour du critère:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE CalculAge([DateNaiss])='9';
    WHERE CalculAge([DateNaiss]))="9";
    - convertir le résultat en numérique
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE CInt(CalculAge([DateNaiss]))=9;
    ou on peut aussi déclarer le type de la fonction (Entier suffit largement pour un calcul d'âge):
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    Function CalculAge2(DateNaissance As Date, Optional dateReference As Date) As Integer
    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 régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    Merci Tee pour ces précisions.
    Comme d’habitude, tes interventions sont "Tip Top".
    Au plaisir de te lire.
    Cordialement
    Riton

  7. #7
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 61
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    Merci beaucoup tee_grandbois.

    En fait j'avais un souci avec ma table mais l'information n'en reste pas moins précieuse.

    Beau dimanche !

    SuzyR

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/02/2018, 14h21
  2. [Toutes versions] Extraire nombre mois de plusieurs années entre deux dates
    Par Thib31 dans le forum Excel
    Réponses: 8
    Dernier message: 06/06/2016, 23h49
  3. Réponses: 1
    Dernier message: 16/03/2015, 10h50
  4. Nombre d'années entre deux DATE (indépendante)
    Par Alain Defrance dans le forum Contribuez
    Réponses: 1
    Dernier message: 10/02/2011, 00h04
  5. Nombre d'années entre deux DATE (dépendante de months_between)
    Par Alain Defrance dans le forum Contribuez
    Réponses: 0
    Dernier message: 09/02/2011, 22h38

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