Dates sous Visual

Fermé
X-Ray - 17 juil. 2003 à 15:43
 blabla - 4 nov. 2003 à 11:19
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
A voir également:

9 réponses

Utilisateur anonyme
17 juil. 2003 à 16:01
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
Utilisateur anonyme
17 juil. 2003 à 16:04
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
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
Utilisateur anonyme
17 juil. 2003 à 16:28
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Utilisateur anonyme
17 juil. 2003 à 16:36
???????????

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
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
X-Ray > X-Ray
17 juil. 2003 à 16:50
en fait, si je mets des virgules, il me dit ke l'expression est incorrecte !
0
Utilisateur anonyme
17 juil. 2003 à 17:00
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
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
oups ! pardon !
je voulais dire pour : YearDiff = DateDiff("yyyy", Date1, Date2)
Il va prendre quoi comme valeurs pour Date1 et Date2 ?
0
OK !!!!!!! j'ai réussi ! Ca marche !!!!!
Jte remercie enormément pour ton aide !!
A plus ! ;o)
0
il faut écrire "aaaa" à la place de "yyyy", puisque tu utilises une version française dAccess.
0
Utilisateur anonyme
18 juil. 2003 à 09:04
Cool !!!

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