moyenne mobile

Le
Marc
bonsoir à tous

je cherche depuis longtemps a faire une moyenne mobile sur une table
tres simple

un champ date
un champ numerique

le but du jeu et de faire une moyenne de la date en court a j-2 ex

01/01/11 10 -

02/01/11 20 -

03/01/11 30 20

04/01/11 40 30

05/01/11 50 40

j'ai essayer de faire un moydom("[monchamp]";"matable";[madate] between
format((ajdate("d";-2;[date]);"dd/MM/YYYY") and
format([madate];;"dd/MM/YYYY")

mais la syntaxe n'est pas bonne merci bcp de votre aide & bonne soirée

M
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Albéric
Le #23949001
"Marc" 4eb98300$0$695$
bonsoir à tous

j'ai essayer de faire un moydom("[monchamp]";"matable";[madate] between
format((ajdate("d";-2;[date]);"dd/MM/YYYY") and
format([madate];;"dd/MM/YYYY")

mais la syntaxe n'est pas bonne merci bcp de votre aide & bonne soirée




Bonjour Marc,

Je n'utilise pas les fonctions de domaines (trop lentes), mais peut-être
qu'il faut utiliser le format « #mm/dd/yyyy# » (avec les #) comme dans les
requêtes.
De plus, la condition "where" devrait certainement être construite autrement
: écrivez-là dans une requête et faîtes un copier/coller du code SQL

Cdt
db
Le #23949141
Le 08/11/2011 20:29, Marc a écrit :
bonsoir à tous

je cherche depuis longtemps a faire une moyenne mobile sur une table
tres simple

un champ date
un champ numerique

le but du jeu et de faire une moyenne de la date en court a j-2 ex

01/01/11 10 -

02/01/11 20 -

03/01/11 30 20

04/01/11 40 30

05/01/11 50 40

j'ai essayer de faire un moydom("[monchamp]";"matable";[madate] between
format((ajdate("d";-2;[date]);"dd/MM/YYYY") and
format([madate];;"dd/MM/YYYY")

mais la syntaxe n'est pas bonne merci bcp de votre aide & bonne soirée

M



Quelque chose comme

mydom("[MonChamp]";"[MaTable]";"[MaDate] between Date() -2 and Date()")


db
Marc
Le #23949441
Le 09/11/2011 18:27, db a écrit :
Le 08/11/2011 20:29, Marc a écrit :
bonsoir à tous

je cherche depuis longtemps a faire une moyenne mobile sur une table
tres simple

un champ date
un champ numerique

le but du jeu et de faire une moyenne de la date en court a j-2 ex

01/01/11 10 -

02/01/11 20 -

03/01/11 30 20

04/01/11 40 30

05/01/11 50 40

j'ai essayer de faire un moydom("[monchamp]";"matable";[madate] between
format((ajdate("d";-2;[date]);"dd/MM/YYYY") and
format([madate];;"dd/MM/YYYY")

mais la syntaxe n'est pas bonne merci bcp de votre aide & bonne soirée

M



Quelque chose comme

mydom("[MonChamp]";"[MaTable]";"[MaDate] between Date() -2 and Date()")


db


MERCI JE VAIS ESSAYER
Albéric
Le #23952271
Le 09/11/2011 17:46, Albéric a écrit :



bONJOUR Albéric



mon pb c'est que je ne voit pas comment faire avec une requete sans la
fonction moydom



Merci









Bonjour Marc, il faut éviter de répondre en privé dans un newsgroup.



En SQL Access, je ne vois pas trop comment lister une moyenne mobile. En
extraire une, oui, comme l'a montré db en utilisant la date du jour.



Personnellement j'utilise le VBA pour calculer une Température Moyenne
Équivalente (10% de J-2, 30% de J-1 et 60% de J0)
Mais ce n'est quand même pas une petite affaire.



J'y réflèchis, avec une réponse dans les heures qui viennent...



Cdt
Albéric
Le #23957981
"Albéric" j9h3mf$ak6$


Personnellement j'utilise le VBA pour calculer une Température Moyenne
Équivalente (10% de J-2, 30% de J-1 et 60% de J0)
Mais ce n'est quand même pas une petite affaire.



J'y réflèchis, avec une réponse dans les heures qui viennent...



Cdt



Bonjour Marc,

Alors en prenant une table « Tbl_Pour_Moyenne_mobile » comme suit :
M_Date M_Valeur M_Mobile
1/10/2011 10
2/10/2011 20
3/10/2011 25
4/10/2011 30
5/10/2011 32
6/10/2011 27
7/10/2011 25
8/10/2011 20

Voici le code VBA permettant de mettre la moyenne mobile dans le champ
"M_Mobile"

«
Option Compare Database
Option Explicit

Sub Calcule_MM() 'Moyenne Mobile
'il faut référencer le dernier ActiveX data Object dans le VBA
Dim CN As ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Rst_MM As New ADODB.Recordset
Dim sSql As String
Dim dDerMM As Date
Dim sD1 As String, sD2 As String

Set CN = CurrentProject.Connection

'on ouvre une requête pour tous les enregistrements dont la moyenne
mobile n'a pas été calculée
sSql = "SELECT Tbl_Pour_Moyenne_mobile.M_Date,
Tbl_Pour_Moyenne_mobile.M_Valeur, Tbl_Pour_Moyenne_mobile.M_Mobile" _
& " FROM Tbl_Pour_Moyenne_mobile" _
& " WHERE (((Tbl_Pour_Moyenne_mobile.M_Mobile) Is Null))" _
& " ORDER BY Tbl_Pour_Moyenne_mobile.M_Date;"
Rst.Open sSql, CN, adOpenDynamic, adLockPessimistic 'mode permettant
la modification
If Not Rst.EOF Then
Rst.MoveFirst
Do
'la dernière date sans moyenne
dDerMM = Rst("M_Date")
'formatée SQL ACCESS
sD2 = "#" & Format(dDerMM, "mm/dd/yyyy") & "#"
'formatage SQL ACCESS de la date min pour la moyenne mobile (
ici -2)
sD1 = "#" & Format(dDerMM - 2, "mm/dd/yyyy") & "#"
'construction de la requête
sSql = "SELECT Avg(Tbl_Pour_Moyenne_mobile.M_Valeur) AS MM" _
& " FROM Tbl_Pour_Moyenne_mobile" _
& " WHERE Tbl_Pour_Moyenne_mobile.M_Date Between " & sD1 &
" And " & sD2 _
& ";"
Rst_MM.Open sSql, CN, adOpenStatic
Rst("M_Mobile") = Rst_MM("MM")
Rst.Update
Rst_MM.Close
Rst.MoveNext
Loop Until Rst.EOF
Rst.Close
End If
MsgBox "fini"
End Sub

»

Résultat :
M_Date M_Valeur M_Mobile
1/10/2011 10 10
2/10/2011 20 15
3/10/2011 25 18,33333
4/10/2011 30 25
5/10/2011 32 29
6/10/2011 27 29,66667
7/10/2011 25 28
8/10/2011 20 24
Marc
Le #23979491
Le 08/11/2011 20:29, Marc a écrit :
bonsoir à tous

je cherche depuis longtemps a faire une moyenne mobile sur une table
tres simple

un champ date
un champ numerique

le but du jeu et de faire une moyenne de la date en court a j-2 ex

01/01/11 10 -

02/01/11 20 -

03/01/11 30 20

04/01/11 40 30

05/01/11 50 40

j'ai essayer de faire un moydom("[monchamp]";"matable";[madate] between
format((ajdate("d";-2;[date]);"dd/MM/YYYY") and
format([madate];;"dd/MM/YYYY")

mais la syntaxe n'est pas bonne merci bcp de votre aide & bonne soirée

M


Merci ALbéric et désolé pr le maail c'est une erreur

Marc
Publicité
Poster une réponse
Anonyme