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

Bug dans ma requete !

1 réponse
Avatar
rené
bonjour
Pour gerer un parc d'engins avec des compteurs horaire
J'ai une Table "Tbl Compteurs" avec les champs :
"nuGSM" le numéro de l'engin
"Dâte Releve" la date du relevé du compteur
"HC" la valeur du compteur

Je désire que le champ calculé HC1 me donne la valeur entre 2 relevés
avec la requete suivante
SELECT nuGSM,DâteRelevé,HC , DLast("HC","tbl Compteurs","nuGSM=" & [nuGSM] &
" AND [DâteRelevé]<" & Format([DâteRelevé],"\#mm-dd-yyyy\#")) AS HC1
FROM [tbl Compteurs]
ORDER BY nuGSM, DâteRelevé;

J'obtiens le résultat suivant :

nuGSM DâteRelevé HC HC1
1 31/01/2005 21
1 01/03/2005 32 21
1 04/04/2005 44 32
1 03/05/2005 53 32
1 01/06/2005 61 32
1 30/06/2005 70 32
1 05/09/2005 84 70

Dans la colonne HC1 les lignes 4,5 et 6 sont fauses, car je devrais avoir
les valeurs 44,53,61 !

Si vous avez la solution pour corriger ce bug ?

rené

1 réponse

Avatar
Jessy Sempere [MVP]
Bonjour

Le problème je pense vient du fait que rien ne te garantie que dans
ta table compteur, tes données soit bien trier chronologiquement...

Du coup, ton DLast(...) ne te sort peut-être pas la valeur de la dernière
date précédent ton relevé.

Essais d'utiliser une autre requête qui représente ta table tblCompteurs
que tu nommes par exemple : "qryCompteurs" afin de trier ta table compteur
sur la date du relevé, genre :
Select * From tblCompteurs Order by DateReleve;

Ensuite, tu fais la même requête que tu as fait sauf que tu base ton
DLast(...)
sur la requête qryCompteurs.

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"rené" a écrit dans le message de
news:
bonjour
Pour gerer un parc d'engins avec des compteurs horaire
J'ai une Table "Tbl Compteurs" avec les champs :
"nuGSM" le numéro de l'engin
"Dâte Releve" la date du relevé du compteur
"HC" la valeur du compteur

Je désire que le champ calculé HC1 me donne la valeur entre 2 relevés
avec la requete suivante
SELECT nuGSM,DâteRelevé,HC , DLast("HC","tbl Compteurs","nuGSM=" & [nuGSM]
&

" AND [DâteRelevé]<" & Format([DâteRelevé],"#mm-dd-yyyy#")) AS HC1
FROM [tbl Compteurs]
ORDER BY nuGSM, DâteRelevé;

J'obtiens le résultat suivant :

nuGSM DâteRelevé HC HC1
1 31/01/2005 21
1 01/03/2005 32 21
1 04/04/2005 44 32
1 03/05/2005 53 32
1 01/06/2005 61 32
1 30/06/2005 70 32
1 05/09/2005 84 70

Dans la colonne HC1 les lignes 4,5 et 6 sont fauses, car je devrais avoir
les valeurs 44,53,61 !

Si vous avez la solution pour corriger ce bug ?

rené