Bonjour à tous.
J'ai cherché à bien comprendre la façon d'utiliser des fonctions dans les requêtes Access, mais je n'arrive pas encore à les faire fonctionner.
Voici mon problème :
J'ai un table très simple, avec 3 champs:
- La clé primaire
- Le champ "date", finalement aussi unique que la clé
- Le champ "cours", donnant le cours du produit au jour donné
Je veux pouvoir faire une requête qui affichera ces 3 champs ainsi qu'un 4ème champ "Moyenne10Jours", calculé comme suit:
Le 4ème champ est égal à la moyenne historique des 10 derniers jours.
Ce champ est donc la moyenne arithmétique des 10 enregistrements du champs "cours" qui précèdent l'enregistrement actuellement calculé, ie par exemple, l'enregistrement 23 de ce champ "Moyenne10Jours" est égal à la moyenne des "cours" des enregistrements 14 à 23, et ainsi de suite.
Ce calcul, évidemment très simple en Excel, me paraît plus délicat en Access.
D'après ce que j'ai lu sur le forum et sur les tutoriels, je pense qu'une des solutions simples est de passer par une fonction que j'appelle pour calculer le champ "Moyenne10Jours" dans ma requête Access.
La fonction serait donc une boucle de ce type, avec le nom du champ (tbl) et le numéro de l'enreregistrement actuel (i) en données d'entrée:
Public Function Moyenne(tbl As Variant, i as integer) As Double
Dim Var1
For j = -9 To 0
Var1 = Var1 + tbl( i + j) 'somme des valeurs
Next
Moyenne = Var1 / 10
End Function
Mon problème, c'est que je n'arrive pas à appeler correctement cette fonction dans ma requête.
- Je ne sais pas comment dire dans ma requête qui appelle la fonction que le "i" est le numéro d'enregistrement actuel
- J'ai le même problème pour demander de mettre le champ "cours" en tant qu'input de la fonction.
Merci d'avance pour votre aide.
Bien cordialement,
Laurent
Partager