Acces : calcul de difference entre de 2
Résolu/Fermé
willou-78
Messages postés
62
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
19 octobre 2019
-
13 août 2008 à 13:46
willou-78 Messages postés 62 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 19 octobre 2019 - 18 août 2008 à 10:35
willou-78 Messages postés 62 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 19 octobre 2019 - 18 août 2008 à 10:35
A voir également:
- Acces : calcul de difference entre de 2
- Acces rapide - Guide
- Accès refusé - Guide
- Compte facebook piraté plus d'accès - Guide
- Clé d'accès google - Accueil - Guide confidentialité
- Pourquoi google me bloque l'accès de certain sites ? - Guide
15 réponses
Bonjour,
je viens de replonger dans Acces que j'ai délaissé depuis quelques années.
Après un test = date du jour - date (extraite d'une base de donnée) on obtient la différence en nombre de jour.
Si effectivement on intervertit les deux dates on obtient des choses curieuses et négatives.
Connaissant le nb de jour, on obtient le nombre d'année en divisant par 365; tantpis pour les année bissextiles, le but étant, je pense, d'avoir un indicateur. (faire l'essai avec 365 et 366 la différence est minime)
D'autre part pour obtenir le cout annuel, il vaut mieux diviser le cout total par le nombre d'année, plutôt que l'inverse.
Quant à mettre tout ça en place !!!
Faut voir ce qui existe déjà.
Si mes anciennes connaissances peuvent t'être utiles...
je viens de replonger dans Acces que j'ai délaissé depuis quelques années.
Après un test = date du jour - date (extraite d'une base de donnée) on obtient la différence en nombre de jour.
Si effectivement on intervertit les deux dates on obtient des choses curieuses et négatives.
Connaissant le nb de jour, on obtient le nombre d'année en divisant par 365; tantpis pour les année bissextiles, le but étant, je pense, d'avoir un indicateur. (faire l'essai avec 365 et 366 la différence est minime)
D'autre part pour obtenir le cout annuel, il vaut mieux diviser le cout total par le nombre d'année, plutôt que l'inverse.
Quant à mettre tout ça en place !!!
Faut voir ce qui existe déjà.
Si mes anciennes connaissances peuvent t'être utiles...
Hadrienen
Messages postés
716
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
23 décembre 2010
25
13 août 2008 à 13:50
13 août 2008 à 13:50
BOnjour,
Il doit y avoir des programmes je pense...mais sinon faut savoir calculer de tete^^
Pis à quoi servirai ton calcul ?
Il doit y avoir des programmes je pense...mais sinon faut savoir calculer de tete^^
Pis à quoi servirai ton calcul ?
willou-78
Messages postés
62
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
19 octobre 2019
3
14 août 2008 à 08:41
14 août 2008 à 08:41
C'est pour la gestion de mon parque automobile. 3 véhicules dont j'effectue l'entretient courant mais aussi les réparrations, depuis des années. Il y a tout un tas de renseignements, dont la date en cour, la date d'achat. Dans un formulaire, dans lequel, il y a une liste de réparations avec le coût des pièces changées, on y trouve le coût total, par véhicule selectionné.
Maintenant, j'ai besoin de calculer la différence entre la date en cour et la date d'achat, pour pouvoir être divisé par le coût total, ce qui me donnerait un coût moyen annuel.
Maintenant, j'ai besoin de calculer la différence entre la date en cour et la date d'achat, pour pouvoir être divisé par le coût total, ce qui me donnerait un coût moyen annuel.
Hadrienen
Messages postés
716
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
23 décembre 2010
25
14 août 2008 à 12:31
14 août 2008 à 12:31
Je pense qu'un logiciel calculant ce genre de logiciel est assez dur à faire....
Mais ! , si c'est un calcule sur 1 an , on pourrait créer un logiciel qui:
-convertit les dates , exemple 12/04/08 correspond au 103 eme jour de l'année et le 09/02/08 , correspond au 40 eme jour de l'année.
-on pourra donc lancer le calcul => 103-40 = 63 , donc il s'est écoulé 63 jours.
Cela te conviendrait t-il?
Il y aura une difficulté si c'est le cas..tenir compte des années bixestiles ....
Mais est ce que c'est ça que tu cherches?
Mais ! , si c'est un calcule sur 1 an , on pourrait créer un logiciel qui:
-convertit les dates , exemple 12/04/08 correspond au 103 eme jour de l'année et le 09/02/08 , correspond au 40 eme jour de l'année.
-on pourra donc lancer le calcul => 103-40 = 63 , donc il s'est écoulé 63 jours.
Cela te conviendrait t-il?
Il y aura une difficulté si c'est le cas..tenir compte des années bixestiles ....
Mais est ce que c'est ça que tu cherches?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
neofenix
Messages postés
145
Date d'inscription
mercredi 12 avril 2006
Statut
Membre
Dernière intervention
11 mars 2010
2
14 août 2008 à 12:40
14 août 2008 à 12:40
tu utilises quel langage ?
car en c# et vb tu as des fonctions toutes faites pour recuperer les jours les mois et les années d'une date facilement
donc si c'est ces langages la il n'y a rien de compliqué.
et il est de quel type ta date?
car en c# et vb tu as des fonctions toutes faites pour recuperer les jours les mois et les années d'une date facilement
donc si c'est ces langages la il n'y a rien de compliqué.
et il est de quel type ta date?
willou-78
Messages postés
62
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
19 octobre 2019
3
14 août 2008 à 13:33
14 août 2008 à 13:33
Hadrienen,
Concernant les années bissextiles, j’avais le même type de problème, dans un autre domaine. Dans un tableau, j’avais une colonne pour les semaines, les mois et les années et une 2è colonne où j’inscrivais leurs correspondances en jour, puis les additionnais à des dates xx/xx/xxxx. Cette méthode fonctionne mais occasionnait un décalage d’un mois à l’autre car la correspondance d’1 mois était 30 ou 31 jours. Le tableau est resté tel quel en attendant une modification.
Mais je prendrais volontiers cette première solution, oui.
neofenix,
C’est sous accès 2003, donc c’est du VB.
A part prendre du code à droite et à gauche, pour l’adapter à mes bases de données, je ne sais pas programmer et je ne connaissais pas cette fonction dont tu me parles, jusqu'à maintenant.
Qu’entends-tu par type de date ? Je vais essayer de répondre
J’ai essayé de mettre Date/heure et/ou numérique, dans le type de données des champs correspondants ou/et 00/00/0000;0 ;_ ou xx’’/’’xx’’/’’xxxx, dans le masque de saisi
Concernant les années bissextiles, j’avais le même type de problème, dans un autre domaine. Dans un tableau, j’avais une colonne pour les semaines, les mois et les années et une 2è colonne où j’inscrivais leurs correspondances en jour, puis les additionnais à des dates xx/xx/xxxx. Cette méthode fonctionne mais occasionnait un décalage d’un mois à l’autre car la correspondance d’1 mois était 30 ou 31 jours. Le tableau est resté tel quel en attendant une modification.
Mais je prendrais volontiers cette première solution, oui.
neofenix,
C’est sous accès 2003, donc c’est du VB.
A part prendre du code à droite et à gauche, pour l’adapter à mes bases de données, je ne sais pas programmer et je ne connaissais pas cette fonction dont tu me parles, jusqu'à maintenant.
Qu’entends-tu par type de date ? Je vais essayer de répondre
J’ai essayé de mettre Date/heure et/ou numérique, dans le type de données des champs correspondants ou/et 00/00/0000;0 ;_ ou xx’’/’’xx’’/’’xxxx, dans le masque de saisi
willou-78
Messages postés
62
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
19 octobre 2019
3
14 août 2008 à 13:36
14 août 2008 à 13:36
erreur de frappe
neofenix
Messages postés
145
Date d'inscription
mercredi 12 avril 2006
Statut
Membre
Dernière intervention
11 mars 2010
2
14 août 2008 à 13:57
14 août 2008 à 13:57
en vb sous access je ne sais pas si cette fonction existe vu que je n'en ai jamais fait dsl.
j'espere que quelqu'un saura t'aider
j'espere que quelqu'un saura t'aider
Hadrienen
Messages postés
716
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
23 décembre 2010
25
14 août 2008 à 14:20
14 août 2008 à 14:20
Créé toi un logiciel avec Code::block ,
associe chaque date à leur jou correspodant (le 1er janvier = 1 ,etc...jusqu'au 31 décembre)
comme ça tes calcules seront vites pour le durée de dates.
Année bissextile? ba tu fais un 2e programme avec 1 jour de plus et basta ^^ (whaou leprogramme que tu te sers tous les 4 ans xD)
associe chaque date à leur jou correspodant (le 1er janvier = 1 ,etc...jusqu'au 31 décembre)
comme ça tes calcules seront vites pour le durée de dates.
Année bissextile? ba tu fais un 2e programme avec 1 jour de plus et basta ^^ (whaou leprogramme que tu te sers tous les 4 ans xD)
willou-78
Messages postés
62
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
19 octobre 2019
3
14 août 2008 à 15:28
14 août 2008 à 15:28
Je n’y connais rien en programmation. J’ai su faire un tableau de correspondance entre jour (1ère colonne) et semaines/mois/années, appelé ’’période’’ (2sd colonne)
7 = 1 semaine
14 = 2 semaines
21 = 3 semaines
30 = 1 mois
61 = 2 mois
91 = 3 mois
123 = 6 mois
365 = 1 ans
730 = 2 ans
1825 = 5 ans
On voit uniquement la colonne de droite mais je me sers de celle de gauche pour additionner une date avec la période.
Par contre je ne vois pas comment faire ce que tu me dis. Tu n’as pas un exemple ?
7 = 1 semaine
14 = 2 semaines
21 = 3 semaines
30 = 1 mois
61 = 2 mois
91 = 3 mois
123 = 6 mois
365 = 1 ans
730 = 2 ans
1825 = 5 ans
On voit uniquement la colonne de droite mais je me sers de celle de gauche pour additionner une date avec la période.
Par contre je ne vois pas comment faire ce que tu me dis. Tu n’as pas un exemple ?
Hadrienen
Messages postés
716
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
23 décembre 2010
25
14 août 2008 à 16:50
14 août 2008 à 16:50
Exemple: donner une valeur pour chaque date:
01/01/2008 = 1 (pour le 1er jour de l'année)
02/01/2008= 2
03/01/2008 = 3
......
30/12/2008 = 365
31/12/2008 = 366
Après si tu veux soustraire 2 dates , tu écriras : 30/12/2008 - 03/01/2008 , le programme te fera : 365-3=362 :D
01/01/2008 = 1 (pour le 1er jour de l'année)
02/01/2008= 2
03/01/2008 = 3
......
30/12/2008 = 365
31/12/2008 = 366
Après si tu veux soustraire 2 dates , tu écriras : 30/12/2008 - 03/01/2008 , le programme te fera : 365-3=362 :D
willou-78
Messages postés
62
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
19 octobre 2019
3
14 août 2008 à 18:39
14 août 2008 à 18:39
j'avais justement peur que tu me donne cette solution. ça ne fait pas très pro, puis ça va faire long à faire.
Il doit y avoir un truc plus simpa, je pense
Il doit y avoir un truc plus simpa, je pense
Hadrienen
Messages postés
716
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
23 décembre 2010
25
14 août 2008 à 19:09
14 août 2008 à 19:09
ça fait pas pro...une fois le programme créé , ça le fait ;)
Pis tu peux le faire en console, ça prend pas bcp de place....
sinon regarde , tape " Calcul sur dates OutilCalMed " sur google..et essaye le logiciel ....
Pis tu peux le faire en console, ça prend pas bcp de place....
sinon regarde , tape " Calcul sur dates OutilCalMed " sur google..et essaye le logiciel ....
willou-78
Messages postés
62
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
19 octobre 2019
3
15 août 2008 à 09:30
15 août 2008 à 09:30
Hadrienen,
J’ai été voir ce OutilCalMed, mais n’arrive pas à trouver l’endroit où le télécharger. Mais j’ai trouvé une piste pour faire mon calcul
algoplus,
J’ai eu la même idée, hier soir, a quelque chose près. Pour calculer le nombre d'année (Champ7). Il n'y aura plus qu'à diviser le cout total par le résultat obtenu. J'ai juste un problème à regler (voir à a fin)
Dans un formulaire
Bouton Command1
Champ1 : =date()
Champ2 CopieDateActuelle : Date/heure
Champ3 ConversionDateActuelle : Texte
Champ4 DateAchat : Date/heure
Champ5 ConversionDateAchat : Texte
Champ6 TempsEnJour :Texte
Champ7 TempsEnAnnee : Texte
Code VB
Private Sub Command1_Click()
Champ2.Value = Champ1.Value
Champ3.Value = Champ2.Value / 365 * 365
Champ5.Value = Champ4.Value / 365 * 365
Champ6.Value = Champ3.Value – Champ5.Value
Champ7.Value = Champ6.Value / 365
End Sub
C’est un premier jet de mon idée. Mais je pense que je peux remplacer ’’/365 * 365’’, par /1, donc à tester.
En attendant ça fonctionne sauf en ce qui concentre le dernier champ. Jusqu’à une différence minimum d’2 mois, le résultas est correcte. Dès que la différence des 2 dates est inférieure à 1 mois et quelques jours, le résultat passe subitement de proche de 0,101 à 9,36
Exemple
Maintenant, nous sommes le 15/08/2008
Date d’achat = 16/08/2007
Résultat = 1
Date d’achat = 15/08/2007
Résultat = 1,002
Date d’achat = 15/08/2006
Résultat = 2,002
Date d’achat = 16/08/2006
Résultat = 2
Date d’achat = 09/07/200
Résultat = 0,101
Jusque là, tout marche.
Date d’achat = 10/07/2006
Résultat = 9,86
Date d’achat = 14/08/2008
Résultat = 2,73
J’ai été voir ce OutilCalMed, mais n’arrive pas à trouver l’endroit où le télécharger. Mais j’ai trouvé une piste pour faire mon calcul
algoplus,
J’ai eu la même idée, hier soir, a quelque chose près. Pour calculer le nombre d'année (Champ7). Il n'y aura plus qu'à diviser le cout total par le résultat obtenu. J'ai juste un problème à regler (voir à a fin)
Dans un formulaire
Bouton Command1
Champ1 : =date()
Champ2 CopieDateActuelle : Date/heure
Champ3 ConversionDateActuelle : Texte
Champ4 DateAchat : Date/heure
Champ5 ConversionDateAchat : Texte
Champ6 TempsEnJour :Texte
Champ7 TempsEnAnnee : Texte
Code VB
Private Sub Command1_Click()
Champ2.Value = Champ1.Value
Champ3.Value = Champ2.Value / 365 * 365
Champ5.Value = Champ4.Value / 365 * 365
Champ6.Value = Champ3.Value – Champ5.Value
Champ7.Value = Champ6.Value / 365
End Sub
C’est un premier jet de mon idée. Mais je pense que je peux remplacer ’’/365 * 365’’, par /1, donc à tester.
En attendant ça fonctionne sauf en ce qui concentre le dernier champ. Jusqu’à une différence minimum d’2 mois, le résultas est correcte. Dès que la différence des 2 dates est inférieure à 1 mois et quelques jours, le résultat passe subitement de proche de 0,101 à 9,36
Exemple
Maintenant, nous sommes le 15/08/2008
Date d’achat = 16/08/2007
Résultat = 1
Date d’achat = 15/08/2007
Résultat = 1,002
Date d’achat = 15/08/2006
Résultat = 2,002
Date d’achat = 16/08/2006
Résultat = 2
Date d’achat = 09/07/200
Résultat = 0,101
Jusque là, tout marche.
Date d’achat = 10/07/2006
Résultat = 9,86
Date d’achat = 14/08/2008
Résultat = 2,73
Effectivement " /365*365" ça fait 1, donc inutile
Dans le petit essai que j'ai fait, pour l'adapter à tes données, ça donne:
champ1 : =date() - champ4 'ca me donne la différence en jours entiers : entre hier et aujourd'hui =1, avant hier=2
champ7=champ1/365 'et ça me donne des résultats cohérents
Finalement des champs 2,3 et 5 ne servent à rien!
je n'ai pas converti les champs date en texte(est-ce bien utile et n'est pas la cause du dysfonctionnement?)
on pourrait même tout faire dans un seul champ champ1: =(date()-champ4)/365
Bon courage
Dans le petit essai que j'ai fait, pour l'adapter à tes données, ça donne:
champ1 : =date() - champ4 'ca me donne la différence en jours entiers : entre hier et aujourd'hui =1, avant hier=2
champ7=champ1/365 'et ça me donne des résultats cohérents
Finalement des champs 2,3 et 5 ne servent à rien!
je n'ai pas converti les champs date en texte(est-ce bien utile et n'est pas la cause du dysfonctionnement?)
on pourrait même tout faire dans un seul champ champ1: =(date()-champ4)/365
Bon courage
willou-78
Messages postés
62
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
19 octobre 2019
3
18 août 2008 à 10:35
18 août 2008 à 10:35
Bonjour,
J'ai finalement, utilisé cette fonction :
champ1: =(date()-champ4)/365
Avec une fonction de mise à jour automatique sur modification du champ4 : date d'achat
Ensuite, travaillé sur le type de donnée (Numérique et Decimal à 2 chiffres après la virgule), fonctions que je ne maitrisais pas.
Tout cela pour afficher un coût moyan annuuel ainsi que le commentaire " €"
En tout cas, merci de votre aide
J'ai finalement, utilisé cette fonction :
champ1: =(date()-champ4)/365
Avec une fonction de mise à jour automatique sur modification du champ4 : date d'achat
Ensuite, travaillé sur le type de donnée (Numérique et Decimal à 2 chiffres après la virgule), fonctions que je ne maitrisais pas.
Tout cela pour afficher un coût moyan annuuel ainsi que le commentaire " €"
En tout cas, merci de votre aide