Dates sous Visual

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. Cool !!!

    Rien n'est plus dangereux qu'une idée quand on a 
    qu'une idée  :-)
    0
    1. OK !!!!!!! j'ai réussi ! Ca marche !!!!!
      Jte remercie enormément pour ton aide !!
      A plus ! ;o)
      0
      1. il faut écrire "aaaa" à la place de "yyyy", puisque tu utilises une version française dAccess.
        0
    2. 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. 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. oups ! pardon !
        je voulais dire pour : YearDiff = DateDiff("yyyy", Date1, Date2)
        Il va prendre quoi comme valeurs pour Date1 et Date2 ?
        0
    3. ???????????

      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. 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
      2. @X-Rayen fait, si je mets des virgules, il me dit ke l'expression est incorrecte !
        0
    4. 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
      1. 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
        1. 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
          1. 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
            1. 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