Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/03/2011, 23h53   #1
Membre du Club
 
Inscription : juillet 2009
Messages : 210
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 210
Points : 47
Points : 47
Par défaut Effectuer une opération en fonction d'une date.

Bonjour, je cherche à faire un sorte de fonction de dépréciation.
Dans un formulaire "produits" j'ai un champ "dateAchat", un champ "dateMajPrix", un champ "prixAchat", un champ "prixActuel" et un champ "tauxDepreciation".

Prenons un exemple : j'ai un produit dont la date d'achat est 02/03/2011.
Je voudrais que quand on sera le 02/03/2012, le prix actuel soit automatiquement déprécié suivant une formule de calcul qui s'exécutera en vba. Mon seul soucis est : comment faire pour que la base de donnée sache que la date est 02/03/2012.

Je donne un petit algorithme pour mieux comprendre :

Précision : quand on rentre un produit dans la bdd, les champs "dateAchat" et "dateMajPrix" prennent la même valeur qui est la date à laquelle on les rentre ; idem pour "prixAchat" et "prixActuel".
Les parties de code en italiques sont celles qui me bloquent.

Code :
1
2
3
4
IF date actuelle = me.dateMajPrix + 1 an THEN
             me.prixActuel=me.prixActuel -(0,1*prixActuel)
END IF
Merci d'avance à ceux qui m'apporterait une aide.
Mat08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 05h24   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 609
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 609
Points : 30 959
Points : 30 959
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Un peu de lecture : Les Fonctions Date/Heure

Tu y trouveras les fonctions suivantes :

Date() : pour avoir la date du jour
DateAdd : pour additionner ton année

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 15h51   #3
Membre du Club
 
Inscription : juillet 2009
Messages : 210
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 210
Points : 47
Points : 47
Bonjour et désolé de répondre si tard.

En utilisant votre lien j'en suis arrivé à ça :
Code :
1
2
3
If Date > DateAdd("yyyy", 1, Me.DateMajPrix) Then
Me.PrixActuel = Me.PrixActuel - (Me.PrixActuel* 0.1)
End If
Le problème est que quelque soit la date la condition IF exécute le code.

Par exemple :
-nous somme le 01/01/2005.
-le prix actuel est de 100.

-Me.DateMajPrix = 01/01/2003
-le prix renvoyé est 90.

-Me.DateMajPrix = 01/01/2007
-le prix renvoyé est 90.

Je ne vois pourtant pas ce qui cloche...
Mat08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 09h37   #4
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Bonjour,

Citation:
If Date > DateAdd("yyyy", 1, Me.DateMajPrix) Then
Me.PrixActuel = Me.PrixActuel - (Me.PrixActuel* 0.1)
End If
Ne faudrait-il pas écrire
Code :
If Date() > DateAdd(.....
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 13h31   #5
Membre du Club
 
Inscription : juillet 2009
Messages : 210
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 210
Points : 47
Points : 47
Bonjour, j'y avais pensé mais cela me corrige automatiquement et enlève les parenthèses "()" juste après date.
J'ai même essayé de déclarer une variable DateActuelle = Date() et d'utiliser ma variabl dans le if mais cela ne change rien.
Mat08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h18.


 
 
 
 
Partenaires

Hébergement Web