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 :

Comment utiliser ce code dans une requête ? [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Par défaut Comment utiliser ce code dans une requête ?
    Bonsoir,

    Je recherche une solution pour calculer le nombre de mois entre deux dates avec précision, j'ai trouvé ce code, comment le modifier pour afficher le résultat en mois précis et comment l'utiliser ensuite dans une requête ?

    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
    Function CalculAge(ByVal Dat1 As Date, ByVal Dat2 As Date) As Integer
     
    If Month(Dat2) > Month(Dat1) Then
     
       CalculAge = DateDiff("yyyy", Dat1, Dat2)
     
    ElseIf Month(Dat2) = Month(Dat1) Then
     
       If Day(Dat2) >= Day(Dat1) Then
     
           CalculAge = DateDiff("yyyy", Dat1, Dat2)
     
       Else
     
           CalculAge = DateDiff("yyyy", Dat1, Dat2) - 1
     
       End If
     
    Else
     
       CalculAge = DateDiff("yyyy", Dat1, Dat2) - 1
     
    End If
     
    End Function
    Merci d'avance.
    Philippe.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour,

    Tu copies le code que tu renseignes dans un module.

    Ensuite, tu utilises comme ceci



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Exemple.id, Exemple.UneDate, Exemple.UneAutreDate, CalculAge([UneDate],[UneAutreDate]) AS Expr1
    FROM Exemple;

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Par défaut
    Bonsoir Monsieur,

    Merci pour votre réponse, j'ai modifier le code j'ai remplacé "yyyy" par "m" pour obtenir le résultat en mois, mais le résultat ne semble pas précis,

    Exemple
    calcul sur le 15/05/2014

    date arrivée 16/04/2012 résultat Excel avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DATEDIF(DateArrivee;Maintenant;"m")
    = 24 mois et 29 jours soit 24 mois

    Dans Access = 25 mois " il y a une journée de plus.

    seul le résultat en mois m'intéresse.

    Comment pourrions nous modifier le code pour avoir le même résultat que dans Excel en mois entier ?

    Encore merci.
    Philippe

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Par défaut
    J'ai peut être trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function CalculAge(ByVal Dat1 As Date, ByVal Dat2 As Date) As Integer
       If Day(Dat2) >= Day(Dat1) Then
           CalculAge = DateDiff("m", Dat1, Dat2)
       Else
           CalculAge = DateDiff("m", Dat1, Dat2) - 1
       End If
    End Function
    A voir !

    Encore merci.
    Philippe.

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

Discussions similaires

  1. Comment utiliser des variables dans une requête SQL ?
    Par Ragnarok85 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 12/02/2007, 16h23
  2. Réponses: 4
    Dernier message: 16/02/2006, 16h28
  3. Réponses: 7
    Dernier message: 25/11/2005, 17h11
  4. [SQL server] Comment Fusionner des données dans une requête
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2005, 15h24
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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