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 :

Affichage DiffDate sous forme jours/mois/année


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 69
    Points : 39
    Points
    39
    Par défaut Affichage DiffDate sous forme jours/mois/année
    Bonjour,

    Je n'arrive pas à trouver le paramètre à utiliser avec la fonction DiffDate() pour avoir un affichage de la différence entre 2 dates de la forme: jours/mois/année.
    Pourriez vous m'éclairer?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    J'ai du mal à comprendre ce que tu veux :

    Tu veux les paramétres pour utiliser la fonction DiffDate(), ou visualiser le résultat sous la forme jj/mm/yyyy ?

    Si c'est le deuxième cas il va falloir passer par une autre astuce, en effet DiffDate te renvoie un nombre et non une date. Il faut que tu passes par la fonction DateAdd (ou AjDate) pour ajouter à ta première date la valeur que tu viens de trouver.

    Starec

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : 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
    30
     
    Function diffeudate(a As Date, b As Date) As Long
    Dim dep As Date
    Dim fin As Date
    Dim anniversaire As Date
    Dim annmois As Date
    Dim an As Long
    Dim mois As Long
    Dim jour As Long
    If a >= b Then
    fin = a
    dep = b
    Else
    fin = b
    dep = a
    End If
    If DateSerial(Year(fin), Month(dep), Day(dep)) <= fin Then
    anniversaire = DateSerial(Year(fin), Month(dep), Day(dep))
    Else: anniversaire = DateSerial(Year(fin) - 1, Month(dep), Day(dep))
    End If
    an = Year(anniversaire) - Year(dep)
    If Day(anniversaire) > Day(fin) Then
    annmois = DateSerial(Year(fin), Month(fin) - 1, Day(dep))
    Else
    annmois = DateSerial(Year(fin), Month(fin), Day(dep))
    End If
    mois = (12 * (Year(annmois) - Year(anniversaire))) - Month(anniversaire) + Month(annmois)
    jour = CLng(fin) - CLng(annmois)
    diffeudate = (an * 10000) + (mois * 100) + jour
    End Function
    Elle est pas belle la vie ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    Euh sans passer par du vb ce n'estpas possible?
    En fait j'aimerais pouvoir afficher par exemple l'age d'une personne qui serait dans ma base de donnée.
    En gros, afficher le résultat d'une différence entre 2 dates, mais pas juste en nombre de jours! ( du genre afficher "1an 4mois et 3jours" au lieu de "490" comme le fait ma requête actuelle
    age: DiffDate("d";[date de naissance];Date();2)
    )

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    c'est ce que fait la fonction
    désolé je ne sais pas faire sans vba et d'ailleurs cela donnerait avec les fonctions intégrées un algo assez long et bien illisible
    Elle est pas belle la vie ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    D'accord, s'il faut l'utiliser, c'est parti alors!
    Mais euh... comment utiliser une telle fonction dans une requete en entrant donc 2 champs en paramètre? Je n'en ai jamais utilisé

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tu fais alt f11
    insertion module
    et tu colles la fonction
    les fonctions persos s'utilisent ensuite comme les fonctions intégrées
    au lieu de faire diffdate("m";unedate;une autredate) tu fais
    diffeudate(unedate;uneautredate)
    Elle est pas belle la vie ?

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    Merciii a toi random!! C'est parfait!
    J'ai juste modifié le type, et je retourne un string avec un affichage plus clair:

    If an = 0 Then
    diffeudate = mois & "mois" & " " & jour & "jours"
    End If

    If (an = 0) And (mois = 0) Then
    diffeudate = jour & "jours"
    End If

    If (an <> 0) And (mois <> 0) Then
    diffeudate = an & "ans" & " " & mois & "mois" & " " & jour & "jours"
    End If
    Cela n'apporte rien ici, mais il fallait que je post mes premières lignes de code en vb quelque part sorry

    Bon bah Radom, je te nomme sauveur attitré en vb lol ( pour avoir résolu presque tous mes topic!!)
    Encore une fois, merci!

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

Discussions similaires

  1. [VBA E] jour mois année independant
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/06/2006, 23h44
  2. Réponses: 3
    Dernier message: 27/01/2006, 12h36
  3. Jour Mois anné, heure minute et seconde...
    Par SangKou dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 29/11/2005, 13h43
  4. [Dates] Jour Mois anné, heure minute et seconde...
    Par SangKou dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2005, 08h34
  5. Affichage graphique sous forme de tableau.
    Par eulone dans le forum C++
    Réponses: 2
    Dernier message: 24/11/2004, 20h34

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