[Access] Vérifier la présence d'1 mois
Utilisateur anonyme
-
Jerry21 -
Jerry21 -
Salut !
Bon, ça fait +sieurs heures que je me casse la tête avec ce problème, et je commence à chauffer...
Voici mon problème.
Je dois calculer le nombre de mois entre deux date, mais si le mois d'août et compris dans la période, le décompter (la période peut aller, allez on va dire 3 années maxi je pense).
Tout ça, je dois le vérifier dans une requête (plusieurs même, mais je n'arrive pas à différencier tous les cas possibles à cause de cette possibilité de multi année)
Quelqu'un a déjà solutionner ce genre de truc ?
Merci !
TCHUZZZZZZ
Bon, ça fait +sieurs heures que je me casse la tête avec ce problème, et je commence à chauffer...
Voici mon problème.
Je dois calculer le nombre de mois entre deux date, mais si le mois d'août et compris dans la période, le décompter (la période peut aller, allez on va dire 3 années maxi je pense).
Tout ça, je dois le vérifier dans une requête (plusieurs même, mais je n'arrive pas à différencier tous les cas possibles à cause de cette possibilité de multi année)
Quelqu'un a déjà solutionner ce genre de truc ?
Merci !
TCHUZZZZZZ
A voir également:
- [Access] Vérifier la présence d'1 mois
- Verifier compatibilite windows 11 - Guide
- Youtube premium 2 mois gratuit - Accueil - TV & Vidéo
- Vérifier température pc - Guide
- Vérifier version windows - Guide
- Excel mois en lettre ✓ - Forum Excel
10 réponses
Salut,
Il existe la fonction datediff qui permet de donner le nombre de jours, mois, années séparant deux dates.
Ex:
Ensuite, il faut savoir combien d'années entières on a pour enlever les mois d'aout, et mixer le tout mais c'est quasiment impossible de faire ça avec une requête SQL classique...
A+ Blux
Il existe la fonction datediff qui permet de donner le nombre de jours, mois, années séparant deux dates.
Ex:
SELECT DATEDIFF("m",datedebut,datefin) from table; donne le nombre de mois séparant les deux dates...
Ensuite, il faut savoir combien d'années entières on a pour enlever les mois d'aout, et mixer le tout mais c'est quasiment impossible de faire ça avec une requête SQL classique...
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
Salut Blux et merci.
Mais on m'a donné la solution, en créant une fonction.
Je te mets le code, ça marche parfaitement :
@+
Mais on m'a donné la solution, en créant une fonction.
Je te mets le code, ça marche parfaitement :
Function NbMonth(dtDeb As Date, dtFin As Date)
Dim i%, dt As Date
Dim nbAugust As Integer
For i = Year(dtDeb) To Year(dtFin)
dt = CDate("01/08/" & i)
If dt > dtDeb And dt < dtFin Then nbAugust = nbAugust + 1
Next
NbMonth = DateDiff("m", dtDeb, dtFin) - nbAugust
End Function
@+
Y'a pas de problème !
Mais si tu avais indiqué que l'on pouvait utiliser autre chose que des requêtes, je t'aurais sûrement proposé cette solution ! :-)
A+ Blux
Mais si tu avais indiqué que l'on pouvait utiliser autre chose que des requêtes, je t'aurais sûrement proposé cette solution ! :-)
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
Je n'ai jamais dit qu'il fallait que j'utilise exclusivement des requête, car là j'appelle cette fonction dans la requête et ça tourne.
@+
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tout ça, je dois le vérifier dans une requête
C'est ce que j'ai cru lire :-)))
A+ Blux
C'est ce que j'ai cru lire :-)))
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
il faut connaitre le nombre de mois d'aout
on prend une date elo iignée comme repère mais au 1 9
on fait
diffdate(mois;date1;date eloignée)
si on fait la division entière par 12 on obtient le nombre d'aout
donc
diffdate(mois;date1;date eloignée)\12
on reprend pour l'autre date
diffdate(mois;date2;date eloignée)\12
la difference de ces valeurs est le nombre d'aout dans la période
donc formule pour sql
DiffDate("m";[d1];[d2])+(DiffDate("m";#01/09/1990#;[d1])\12)-(DiffDate("m";#01/09/1990#;[d2])\12)
elle est pas belle la vie ?
on prend une date elo iignée comme repère mais au 1 9
on fait
diffdate(mois;date1;date eloignée)
si on fait la division entière par 12 on obtient le nombre d'aout
donc
diffdate(mois;date1;date eloignée)\12
on reprend pour l'autre date
diffdate(mois;date2;date eloignée)\12
la difference de ces valeurs est le nombre d'aout dans la période
donc formule pour sql
DiffDate("m";[d1];[d2])+(DiffDate("m";#01/09/1990#;[d1])\12)-(DiffDate("m";#01/09/1990#;[d2])\12)
elle est pas belle la vie ?
Bonjour , j'aimerais que vous m'aidiez si c'est possible pour vous.
J'ai créer un base de données elle fonctionne bien sauf que j'aimerais que lorsque je saisi une nouvelle entrée dans une de mes tables que la date du jour y soit sauvegardé automatiquement ( sans que celle ci change à toute les jours Bien sure) dans mon champ Date_du_jour.
Est ce possible?!?! Merci à l'avance
<Ne prend pas ton temps car le temps ne t'attend pas.>
J'ai créer un base de données elle fonctionne bien sauf que j'aimerais que lorsque je saisi une nouvelle entrée dans une de mes tables que la date du jour y soit sauvegardé automatiquement ( sans que celle ci change à toute les jours Bien sure) dans mon champ Date_du_jour.
Est ce possible?!?! Merci à l'avance
<Ne prend pas ton temps car le temps ne t'attend pas.>
Merci pour ton aide précieuse , mais j'aimerais que cette valeur Date() soit aussi stocker dans le champs Date_du_jour pour que je puisse par la suite créer une requête qui va me sortir tout les entrées inscrite entre deux dates données
Merci à l'avance
Merci à l'avance
OK j'ai trouver , tu m'as placer sur le bon chemin je t'en remerci beaucoup. J'ai fait la même procédure mais dans les propriétés (mode création) de la table . Dans "valeur par default" J'ai écrit =Date()
J'avais déjà essayé cette procédure mais malheureusement il me manquait le signe "=" en début.
Merci tu m'as aiguillé vers la bonne solution.
J'avais déjà essayé cette procédure mais malheureusement il me manquait le signe "=" en début.
Merci tu m'as aiguillé vers la bonne solution.