Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Constante/variable

2 réponses
Avatar
Hervé
Bonjour,
Je débute dans access, et j'ai besoin d'un avis d'utilisateurs plus
expérimentés que moi.
J'ai une table dans laquelle chaque jour on entre une 15 aines
d'enregistrements. Chaque enregistrement contient une 30aines de valeurs.
Certaines de ces valeurs doivent être multipliées à un nombre, pour
obtenir le résultat souhaité.
Or ces nombres (car en fait il y en a plusieurs), peut changer dans le
temps, assez rarement. (1 fois tous les 3-4 ans).
Ces nombres s'appellent par exemple : SC = 2.81 Euros, DC = 1.33 Euros
Ils ont donc une valeur donnée à une date donnée, cette valeur pouvant
changer, mais c'est très rare.
Par contre, pour effectuer l'analyse de ma base de donnée, j'ai besoin
de faire des calculs en utilisant la valeur de SC par exemple. Mais le
jour ou cette valeur va changer, mes calculs seront faux pour tout ce
qui concerne les calculs sur les dates antérieures à ce changement, car
elle seront affectées par le changement....alors qu'elle ne doivent pas
l'être.

Je ne sais du coup pas trop comment faire pour remédier à cela.
Faut-il plutôt créer une table avec la valeurs de mes nombres variables,
et y attribuer une date. Le jour où cela changera, je rajouterai un
enregistrement.... mais j'ai l'impression que cela va beaucoup
compliquer mes calculs : pour les enregistrement situées entre telle
date et telle date, faire tel calcul, pour ceux après telle date, faire
tel calcul etc...
Faut-il plutôt inclure dans chacun de mes 15 enregistrements journalier,
la valeur de ces fameux nombre SC, DC etc...
Je ne me rends pas compte si tout cela est très simple ou très
compliqué. (cela me semble compliqué)
Merci par avance de votre aide.
Cordialement.
Hervé

2 réponses

Avatar
Thierry (ze Titi)
Hello Hervé !

Si tu crées une nouvelle table (avec la valeur de tes variables pour une période donnée comme tu le décris bien dans ton post), tu peux toujours écrire 2 fonctions qui iront récupérer la valeur pour une certaine date, par exemple:

Function GetDC(uneDate As Date) As Currency
GetDC=DLookup("DC","laTableDC","[leChampDateDébut]<=#" & Format(uneDate,"dd/mm/yyyy") & "# And [leChampDateFin]>=#" Format(uneDate,"dd/mm/yyyy") & "#)
End Function

Function GetSC(uneDate As Date) As Currency
GetSC=DLookup("SC","laTableSC","[leChampDateDébut]<=#" & Format(uneDate,"dd/mm/yyyy") & "# And [leChampDateFin]>=#" Format(uneDate,"dd/mm/yyyy") & "#)
End Function

De cette façon, tu ne compliques pas tes calculs, tu n'as juste qu'à utiliser ces fonctions dans tes requêtes.


En ce jour mémorable du dimanche 21/10/2007, tu as émis l'idée suivante:
Bonjour,
Je débute dans access, et j'ai besoin d'un avis d'utilisateurs plus
expérimentés que moi.
J'ai une table dans laquelle chaque jour on entre une 15 aines
d'enregistrements. Chaque enregistrement contient une 30aines de valeurs.
Certaines de ces valeurs doivent être multipliées à un nombre, pour obtenir
le résultat souhaité.
Or ces nombres (car en fait il y en a plusieurs), peut changer dans le temps,
assez rarement. (1 fois tous les 3-4 ans).
Ces nombres s'appellent par exemple : SC = 2.81 Euros, DC = 1.33 Euros
Ils ont donc une valeur donnée à une date donnée, cette valeur pouvant
changer, mais c'est très rare.
Par contre, pour effectuer l'analyse de ma base de donnée, j'ai besoin de
faire des calculs en utilisant la valeur de SC par exemple. Mais le jour ou
cette valeur va changer, mes calculs seront faux pour tout ce qui concerne
les calculs sur les dates antérieures à ce changement, car elle seront
affectées par le changement....alors qu'elle ne doivent pas l'être.

Je ne sais du coup pas trop comment faire pour remédier à cela.
Faut-il plutôt créer une table avec la valeurs de mes nombres variables, et y
attribuer une date. Le jour où cela changera, je rajouterai un
enregistrement.... mais j'ai l'impression que cela va beaucoup compliquer mes
calculs : pour les enregistrement situées entre telle date et telle date,
faire tel calcul, pour ceux après telle date, faire tel calcul etc...
Faut-il plutôt inclure dans chacun de mes 15 enregistrements journalier, la
valeur de ces fameux nombre SC, DC etc...
Je ne me rends pas compte si tout cela est très simple ou très compliqué.
(cela me semble compliqué)
Merci par avance de votre aide.
Cordialement.
Hervé


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Hervé
Merci beaucoup.
Hervé

Hello Hervé !

Si tu crées une nouvelle table (avec la valeur de tes variables pour une période donnée comme tu le décris bien dans ton post), tu peux toujours écrire 2 fonctions qui iront récupérer la valeur pour une certaine date, par exemple:

Function GetDC(uneDate As Date) As Currency
GetDC=DLookup("DC","laTableDC","[leChampDateDébut]<=#" & Format(uneDate,"dd/mm/yyyy") & "# And [leChampDateFin]>=#" Format(uneDate,"dd/mm/yyyy") & "#)
End Function

Function GetSC(uneDate As Date) As Currency
GetSC=DLookup("SC","laTableSC","[leChampDateDébut]<=#" & Format(uneDate,"dd/mm/yyyy") & "# And [leChampDateFin]>=#" Format(uneDate,"dd/mm/yyyy") & "#)
End Function

De cette façon, tu ne compliques pas tes calculs, tu n'as juste qu'à utiliser ces fonctions dans tes requêtes.


En ce jour mémorable du dimanche 21/10/2007, tu as émis l'idée suivante:
Bonjour,
Je débute dans access, et j'ai besoin d'un avis d'utilisateurs plus
expérimentés que moi.
J'ai une table dans laquelle chaque jour on entre une 15 aines
d'enregistrements. Chaque enregistrement contient une 30aines de valeurs.
Certaines de ces valeurs doivent être multipliées à un nombre, pour obtenir
le résultat souhaité.
Or ces nombres (car en fait il y en a plusieurs), peut changer dans le temps,
assez rarement. (1 fois tous les 3-4 ans).
Ces nombres s'appellent par exemple : SC = 2.81 Euros, DC = 1.33 Euros
Ils ont donc une valeur donnée à une date donnée, cette valeur pouvant
changer, mais c'est très rare.
Par contre, pour effectuer l'analyse de ma base de donnée, j'ai besoin de
faire des calculs en utilisant la valeur de SC par exemple. Mais le jour ou
cette valeur va changer, mes calculs seront faux pour tout ce qui concerne
les calculs sur les dates antérieures à ce changement, car elle seront
affectées par le changement....alors qu'elle ne doivent pas l'être.

Je ne sais du coup pas trop comment faire pour remédier à cela.
Faut-il plutôt créer une table avec la valeurs de mes nombres variables, et y
attribuer une date. Le jour où cela changera, je rajouterai un
enregistrement.... mais j'ai l'impression que cela va beaucoup compliquer mes
calculs : pour les enregistrement situées entre telle date et telle date,
faire tel calcul, pour ceux après telle date, faire tel calcul etc...
Faut-il plutôt inclure dans chacun de mes 15 enregistrements journalier, la
valeur de ces fameux nombre SC, DC etc...
Je ne me rends pas compte si tout cela est très simple ou très compliqué.
(cela me semble compliqué)
Merci par avance de votre aide.
Cordialement.
Hervé