J'ai une table *tbl compteurs* avec lequelle je gere des Compteurs Horaires
d'engins
Les champs :
1 -codeEngin ( correspond au numéro de l'engin :Type numerique)
2 -DateReleve (la date du releve du compteur) type date)
3 -HC (Valeur du compteur horaire de l'engin)
numerique
Je veux calculer la difference entre 2 releves de chaque engin entre chaque
relevé
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ilan
Bonjour, puisque tes releves se font a chaque fin de mois fais la difference entre la premiere et la derniere valeur HC pour ces dates
essaie cette requete : SELECT CodeEngin,Last(Date),Last(HC)-First(HC) FROM [Tbl compteurs] where date>=#12/31/03# And Date<=#01/31/04# ;
ca devrait te donner la ligne codeEngin Date HC 1 31/01/04 20 2 31/01/04 150
Bonjour,
J'ai une table *tbl compteurs* avec lequelle je gere des Compteurs Horaires d'engins Les champs : 1 -codeEngin ( correspond au numéro de l'engin :Type numerique) 2 -DateReleve (la date du releve du compteur) type date) 3 -HC (Valeur du compteur horaire de l'engin) numerique
Je veux calculer la difference entre 2 releves de chaque engin entre chaque relevé
La requete suivante ne marche pas pourquoi ? Je pense que cela vient du champ *datereleve*
SELECT [tbl Compteurs].codeParcEngin, [tbl Compteurs].DateReleve, [tbl Compteurs].HC, [HC]-nz(DMax("[HC]","[tbl Compteurs]","[codeEngin] =" & [codeEngin] And "[DateReleve] <" & [DateReleve])) AS HCalc FROM [tbl Compteurs] ORDER BY [tbl Compteurs].codeEngin, [tbl Compteurs].DateReleve;
Si vous trouve mon erreur d'avance merci,
René
Bonjour,
puisque tes releves se font a chaque fin de mois fais la difference entre la
premiere
et la derniere valeur HC pour ces dates
essaie cette requete :
SELECT CodeEngin,Last(Date),Last(HC)-First(HC) FROM [Tbl compteurs] where
date>=#12/31/03# And Date<=#01/31/04# ;
ca devrait te donner la ligne
codeEngin Date HC
1 31/01/04 20
2 31/01/04 150
Bonjour,
J'ai une table *tbl compteurs* avec lequelle je gere des Compteurs Horaires
d'engins
Les champs :
1 -codeEngin ( correspond au numéro de l'engin :Type numerique)
2 -DateReleve (la date du releve du compteur) type date)
3 -HC (Valeur du compteur horaire de l'engin)
numerique
Je veux calculer la difference entre 2 releves de chaque engin entre chaque
relevé
Bonjour, puisque tes releves se font a chaque fin de mois fais la difference entre la premiere et la derniere valeur HC pour ces dates
essaie cette requete : SELECT CodeEngin,Last(Date),Last(HC)-First(HC) FROM [Tbl compteurs] where date>=#12/31/03# And Date<=#01/31/04# ;
ca devrait te donner la ligne codeEngin Date HC 1 31/01/04 20 2 31/01/04 150
Bonjour,
J'ai une table *tbl compteurs* avec lequelle je gere des Compteurs Horaires d'engins Les champs : 1 -codeEngin ( correspond au numéro de l'engin :Type numerique) 2 -DateReleve (la date du releve du compteur) type date) 3 -HC (Valeur du compteur horaire de l'engin) numerique
Je veux calculer la difference entre 2 releves de chaque engin entre chaque relevé
La requete suivante ne marche pas pourquoi ? Je pense que cela vient du champ *datereleve*
SELECT [tbl Compteurs].codeParcEngin, [tbl Compteurs].DateReleve, [tbl Compteurs].HC, [HC]-nz(DMax("[HC]","[tbl Compteurs]","[codeEngin] =" & [codeEngin] And "[DateReleve] <" & [DateReleve])) AS HCalc FROM [tbl Compteurs] ORDER BY [tbl Compteurs].codeEngin, [tbl Compteurs].DateReleve;
Si vous trouve mon erreur d'avance merci,
René
Bruno
Effectivement tu as un problème avec la date. Tu avais aussi un petit souci avec la première ligne de chaque engin qui doit rester à zéro. Tu peux résoudre ça en ajoutant [HC] dans le deuxième argument de la fonction nz.
Essaie ça :
SELECT [tbl Compteurs].CodeParcEngin, [tbl Compteurs].DateReleve, [tbl Compteurs].HC, [HC]-nz(DMax("[HC]","[tbl Compteurs]","[codeParcEngin] =" & [codeParcEngin] & " and [DateReleve] <" & DateSQL([DateReleve])),[HC]) AS HCalc FROM [tbl Compteurs] ORDER BY [tbl Compteurs].CodeParcEngin, [tbl Compteurs].DateReleve;
mais il faut que tu copie cette procédure dans un de tes modules (ou que tu utilise directement : Format([DateReleve], """#""mm/dd/yyyy""#""") dans ton dlookup
Function DateSQL(varDate) As String '--------------------------------------------------------------------------- ------- ' Objet : Transforme une date en une chaine de caractères compatible avec le format ' SQL "#mm/dd/yyyy#". A utiliser dans les constructions de requêtes. ' Argument : varDate = date à convertir. ' Peut être une variable de type date (champ date par exemple) ou une ' chaine représentant une date valide (mais dans ce cas au format jj/mm/aa) ' Rem : La fonction renvoie la chaine vide "" si l'argument n'est pas une date ' Ex : DateSQL("12/05/1994") renvoie "#05/12/1994#" '--------------------------------------------------------------------------- -------- On Error GoTo Erreur If IsDate(varDate) Then DateSQL = Format(varDate, """#""mm/dd/yyyy""#""") End If Sortie: Exit Function Erreur: 'Call GestionError("DateSQL", varDate) Debug.Print Err + "" + Error Resume Sortie End Function
@+ Bruno
"rg" a écrit dans le message de news:%
Bonjour,
J'ai une table *tbl compteurs* avec lequelle je gere des Compteurs Horaires
d'engins Les champs : 1 -codeEngin ( correspond au numéro de l'engin :Type numerique) 2 -DateReleve (la date du releve du compteur) type date) 3 -HC (Valeur du compteur horaire de l'engin) numerique
Je veux calculer la difference entre 2 releves de chaque engin entre chaque
La requete suivante ne marche pas pourquoi ? Je pense que cela vient du champ *datereleve*
SELECT [tbl Compteurs].codeParcEngin, [tbl Compteurs].DateReleve, [tbl Compteurs].HC, [HC]-nz(DMax("[HC]","[tbl Compteurs]","[codeEngin] =" & [codeEngin] And "[DateReleve] <" & [DateReleve])) AS HCalc FROM [tbl Compteurs] ORDER BY [tbl Compteurs].codeEngin, [tbl Compteurs].DateReleve;
Si vous trouve mon erreur d'avance merci,
René
Effectivement tu as un problème avec la date.
Tu avais aussi un petit souci avec la première ligne de chaque engin qui
doit rester à zéro. Tu peux résoudre ça en ajoutant [HC] dans le deuxième
argument de la fonction nz.
Essaie ça :
SELECT [tbl Compteurs].CodeParcEngin, [tbl Compteurs].DateReleve, [tbl
Compteurs].HC, [HC]-nz(DMax("[HC]","[tbl Compteurs]","[codeParcEngin] =" &
[codeParcEngin] & " and [DateReleve] <" & DateSQL([DateReleve])),[HC]) AS
HCalc
FROM [tbl Compteurs]
ORDER BY [tbl Compteurs].CodeParcEngin, [tbl Compteurs].DateReleve;
mais il faut que tu copie cette procédure dans un de tes modules
(ou que tu utilise directement : Format([DateReleve],
"""#""mm/dd/yyyy""#""") dans ton dlookup
Function DateSQL(varDate) As String
'---------------------------------------------------------------------------
-------
' Objet : Transforme une date en une chaine de caractères compatible avec le
format
' SQL "#mm/dd/yyyy#". A utiliser dans les constructions de
requêtes.
' Argument : varDate = date à convertir.
' Peut être une variable de type date (champ date par exemple) ou
une
' chaine représentant une date valide (mais dans ce cas au format
jj/mm/aa)
' Rem : La fonction renvoie la chaine vide "" si l'argument n'est pas
une date
' Ex : DateSQL("12/05/1994") renvoie "#05/12/1994#"
'---------------------------------------------------------------------------
--------
On Error GoTo Erreur
If IsDate(varDate) Then
DateSQL = Format(varDate, """#""mm/dd/yyyy""#""")
End If
Sortie:
Exit Function
Erreur:
'Call GestionError("DateSQL", varDate)
Debug.Print Err + "" + Error
Resume Sortie
End Function
@+ Bruno
"rg" <r.gesbert@free.fr_NoSpam> a écrit dans le message de
news:%23aC4j94tEHA.1272@TK2MSFTNGP12.phx.gbl...
Bonjour,
J'ai une table *tbl compteurs* avec lequelle je gere des Compteurs
Horaires
d'engins
Les champs :
1 -codeEngin ( correspond au numéro de l'engin :Type numerique)
2 -DateReleve (la date du releve du compteur) type date)
3 -HC (Valeur du compteur horaire de l'engin)
numerique
Je veux calculer la difference entre 2 releves de chaque engin entre
chaque
Effectivement tu as un problème avec la date. Tu avais aussi un petit souci avec la première ligne de chaque engin qui doit rester à zéro. Tu peux résoudre ça en ajoutant [HC] dans le deuxième argument de la fonction nz.
Essaie ça :
SELECT [tbl Compteurs].CodeParcEngin, [tbl Compteurs].DateReleve, [tbl Compteurs].HC, [HC]-nz(DMax("[HC]","[tbl Compteurs]","[codeParcEngin] =" & [codeParcEngin] & " and [DateReleve] <" & DateSQL([DateReleve])),[HC]) AS HCalc FROM [tbl Compteurs] ORDER BY [tbl Compteurs].CodeParcEngin, [tbl Compteurs].DateReleve;
mais il faut que tu copie cette procédure dans un de tes modules (ou que tu utilise directement : Format([DateReleve], """#""mm/dd/yyyy""#""") dans ton dlookup
Function DateSQL(varDate) As String '--------------------------------------------------------------------------- ------- ' Objet : Transforme une date en une chaine de caractères compatible avec le format ' SQL "#mm/dd/yyyy#". A utiliser dans les constructions de requêtes. ' Argument : varDate = date à convertir. ' Peut être une variable de type date (champ date par exemple) ou une ' chaine représentant une date valide (mais dans ce cas au format jj/mm/aa) ' Rem : La fonction renvoie la chaine vide "" si l'argument n'est pas une date ' Ex : DateSQL("12/05/1994") renvoie "#05/12/1994#" '--------------------------------------------------------------------------- -------- On Error GoTo Erreur If IsDate(varDate) Then DateSQL = Format(varDate, """#""mm/dd/yyyy""#""") End If Sortie: Exit Function Erreur: 'Call GestionError("DateSQL", varDate) Debug.Print Err + "" + Error Resume Sortie End Function
@+ Bruno
"rg" a écrit dans le message de news:%
Bonjour,
J'ai une table *tbl compteurs* avec lequelle je gere des Compteurs Horaires
d'engins Les champs : 1 -codeEngin ( correspond au numéro de l'engin :Type numerique) 2 -DateReleve (la date du releve du compteur) type date) 3 -HC (Valeur du compteur horaire de l'engin) numerique
Je veux calculer la difference entre 2 releves de chaque engin entre chaque
La requete suivante ne marche pas pourquoi ? Je pense que cela vient du champ *datereleve*
Comme ceci :
SELECT CodeEngin, DateReleve, HC, Nz([HC])-DMax("HC","tblCompteurs","CodeEngin=" & [CodeEngin] & " AND [DateReleve]<" & Format([DateReleve],"#mm-dd-yyyy#")) AS Hcalc FROM tblCompteurs ORDER BY CodeEngin, DateReleve;
-- A+ Pierre (3stone) Access MVP ~~~~~~~~~~~~~~~~~~~~~~~ http://users.skynet.be/mpfa http://users.skynet.be/accesshome
Salut,
"rg"
[...]
Je veux calculer la difference entre 2 releves de chaque engin entre chaque
relevé
La requete suivante ne marche pas pourquoi ? Je pense que cela vient du
champ *datereleve*
Comme ceci :
SELECT CodeEngin, DateReleve, HC,
Nz([HC])-DMax("HC","tblCompteurs","CodeEngin=" & [CodeEngin]
& " AND [DateReleve]<" & Format([DateReleve],"#mm-dd-yyyy#")) AS Hcalc
FROM tblCompteurs
ORDER BY CodeEngin, DateReleve;
--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome
La requete suivante ne marche pas pourquoi ? Je pense que cela vient du champ *datereleve*
Comme ceci :
SELECT CodeEngin, DateReleve, HC, Nz([HC])-DMax("HC","tblCompteurs","CodeEngin=" & [CodeEngin] & " AND [DateReleve]<" & Format([DateReleve],"#mm-dd-yyyy#")) AS Hcalc FROM tblCompteurs ORDER BY CodeEngin, DateReleve;
-- A+ Pierre (3stone) Access MVP ~~~~~~~~~~~~~~~~~~~~~~~ http://users.skynet.be/mpfa http://users.skynet.be/accesshome
rg
Merci pour les réponses,
c'est OK pour ma requetes.
------------------------------ "3stone" a écrit dans le message de news:
Salut,
"rg" [...]
Je veux calculer la difference entre 2 releves de chaque engin entre chaque