Dates sous Visual

X-Ray -  
 blabla -
Bonjour,
Je suis pas très expert avec VB et je cherche à compter le nombre d'année qui se sont écoulée entre 2 dates mais sans me préoccuper des jours et mois :
par exmple entre 2001 et 2003 : le résultat doit etre 2
j'ai essayé de la sorte : Maintenant() - [Date] mais ca me renvoie une date en 1900. [Date] étant un champ au format date.
Quelqu'un a une idée ?...
Merci d'avance

9 réponses

  1. Utilisateur anonyme
     
    Salut X-Ray,

    Tu dois utiliser la fontion DateDiff(Interval, Date1, Date2)

    Elle te renvoit la différence entre Date1 et Date2 en termes de l'interval.

    Interval =
    'yyyy' Year
    'q' Quarter
    'm' Month
    'y' Day of year
    'd' Day
    'w' Weekday
    'ww' Week
    'h' Hour
    'n' Minute
    's' Second

    Voili voilou

    Rien n'est plus dangereux qu'une idée quand on a 
    qu'une idée  :-)
    0
  2. Utilisateur anonyme
     
    Précision,

    Elle renvoit Date2 - Date1

    Exemple: P = DateDiff("yyyy", "01/01/2001", Date())

    P = 2

    Rien n'est plus dangereux qu'une idée quand on a 
    qu'une idée  :-)
    0
  3. X-Ray
     
    Merci à toi mais ca marche toujours pas ! :o(
    En fait, je suis sous Access 2000 et j'ai utilisé l'aide et le générateur d'expression.
    J'ai voulu rentrer : =DiffDate("yyyy";[Date];Date()) mais ca me le transforme automatiquement en =DiffDate("""yyyy""";[Date];Date()) et je comprends pas pourquoi ya tous ces guillemets ! Le résultat de l'expression est #Erreur !
    Tu ne saurais pas pourkoi ?
    0
  4. Utilisateur anonyme
     
    Ne mets pas les guillemets quand tu tapes yyyy, il les mettras pour toi

    Rien n'est plus dangereux qu'une idée quand on a 
    qu'une idée  :-)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. X-Ray
     
    Ben si je mets pas les " " il me mets des [ ] et le résultats est #Nom ?
    Je sais pas quoi faire, ca fait 2H que je suis dessus ! :o(
    0
  7. Utilisateur anonyme
     
    ???????????

    Et tu peux pas deleter les guillemets en trop? C'est dingue ça. Il doit y avoir une astuce. Evite le générateur d'expressions peut-être.

    Rien n'est plus dangereux qu'une idée quand on a 
    qu'une idée  :-)
    0
    1. X-Ray
       
      J'ai tout essayé ! en fait je me suis servi du générateur d'expression pour voir la sythaxe. C'est tout !
      Mais s'il mets automatiquement des guillemets, c'est que quelque part, il doit y avoir quelque chose qui deconne!
      Dans l'aide y'a cet exmple :
      DiffDate("y", [DateCommande], [DateEnvoi]])

      Dans l'aide, le séparatuer est la virgule et avec le génrateur, c'est des points virgules...
      J'ai essayé les 2 et rien a faire !
      0
      1. X-Ray > X-Ray
         
        en fait, si je mets des virgules, il me dit ke l'expression est incorrecte !
        0
  8. Utilisateur anonyme
     
    J'ai une idée...

    Crée un module (via l'onglet "module" --> New).
    Tu écris:

    Public Function YearDiff(Date1 As Date, Date2 As Date) As Integer
    YearDiff = DateDiff("yyyy", Date1, Date2)
    End Function

    Tu sauve ton module sous le nom que tu veux.

    Tu reviens dans l'expression builder et au lieu d'utiliser la fonction DateDiff, tu utilises la fonction que tu viens de créer.

    Dans l'expression builder, tu as "Functions" et là, tu as deux possibilités: soit les fonctions "build-in" ou celles de ta DB.

    J'espère que ça marcheras car je dois partir.

    A+

    Rien n'est plus dangereux qu'une idée quand on a 
    qu'une idée  :-)
    0
    1. X-Ray
       
      Bon ben comme j'ai jamais utilisé les modules... j'ai un peu de mal !
      j'ai crée mon module mais j'arrive pas à le récupérer !
      J'arruve même pas à le retrouver pour l'editer !
      Et ya un truc que je comprends pas dans : Public Function YearDiff(Date1 As Date, Date2 As Date) As Integer
      Date1 et Date2, il va prendre quoi comme valeurs pour ces variables ?
      Si tu pouvais me tenir au courant quand tu reviens... ca serait cool !
      Merci d'avance !
      0
    2. X-Ray
       
      oups ! pardon !
      je voulais dire pour : YearDiff = DateDiff("yyyy", Date1, Date2)
      Il va prendre quoi comme valeurs pour Date1 et Date2 ?
      0
  9. X-Ray
     
    OK !!!!!!! j'ai réussi ! Ca marche !!!!!
    Jte remercie enormément pour ton aide !!
    A plus ! ;o)
    0
    1. blabla
       
      il faut écrire "aaaa" à la place de "yyyy", puisque tu utilises une version française dAccess.
      0
  10. Utilisateur anonyme
     
    Cool !!!

    Rien n'est plus dangereux qu'une idée quand on a 
    qu'une idée  :-)
    0