OVH Cloud OVH Cloud

compter des enregistrements

2 réponses
Avatar
manu2b
Bonjour,

J'ai une table contenant des données (champs 2 à n) enregistrées à
différents instants (champ 1).
Je voudrais avoir un champ contenant le nombre d'enregistrement pour
la journée en cours...
Illustration :

date | truc1 | truc2 | nb
01/01/01 12:00 216534 35458 5
01/01/01 13:00 216534 35458 5
01/01/01 14:00 216534 35458 5
01/01/01 15:00 216534 35458 5
01/01/01 16:32 216534 35458 5
02/04/03 12:00 216534 35458 2
02/04/03 15:00 216534 35458 2
03/05/10 12:00 216534 35458 1

Le problème est de calculer le champ 'nb'.
En gros, je n'y arrive pas. Après divers essais de requêtes SQL,
relation entre tables, tables intermédiaires...
Merci beaucoup !

Manu

2 réponses

Avatar
Raymond [mvp]
Bonjour.

tu peux faire:
SELECT table1.Champ, DCount("*","table1","[Madate]Úte()") AS Nb
FROM table1
WHERE (((table1.Madate)Úte()));


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"manu" a écrit dans le message de
news:
Bonjour,

J'ai une table contenant des données (champs 2 à n) enregistrées à
différents instants (champ 1).
Je voudrais avoir un champ contenant le nombre d'enregistrement pour
la journée en cours...
Illustration :

date | truc1 | truc2 | nb
01/01/01 12:00 216534 35458 5
01/01/01 13:00 216534 35458 5
01/01/01 14:00 216534 35458 5
01/01/01 15:00 216534 35458 5
01/01/01 16:32 216534 35458 5
02/04/03 12:00 216534 35458 2
02/04/03 15:00 216534 35458 2
03/05/10 12:00 216534 35458 1

Le problème est de calculer le champ 'nb'.
En gros, je n'y arrive pas. Après divers essais de requêtes SQL,
relation entre tables, tables intermédiaires...
Merci beaucoup !

Manu


Avatar
eric.NOSPAMvalery
Bonjour,

Le plus simple serait de faire une petite fonction telle
que :
function CalculeNombre(DateEnCours as variant)
Calculer le nombre de lignes pour la date donnée
end function

Faire une requete de mise a jour met a jour, soit pour
une seule date, soit pour toute les dates (déconseillé si
beaucoup d'enregistrement, donc se débrouiller pour
filtrer avec une date donnée, par exemple la date du jour
ou de la veille)
et mettre a jour le champ nb avec la fonction ci-dessus
pour la date du champ nb: CalculeNombre(date).

Bon c'est un peu long, car a chaque fois, on va
recalculer le nombre qui est le meme pour toute les
lignes ayant la meme date. On peut optimiser ça soit
faisant une fonction qui calcule le nombre
d'enregistrement et qui remplit le champ nb pour tous les
enregistrement un par un, soit en définissant un variable
globale dans la fonction CalculeNombre pour éviter de la
recalculer si elle est déja remplie par exemple

if NombreEnCours<>0 then
CalculeNombre = NombreEnCours
else
CalculeNombre = dcount("marequete","[date]=#" &
dateencours & "#")
end if

Bon courage

EVA
-----Message d'origine-----
Bonjour,

J'ai une table contenant des données (champs 2 à n)
enregistrées à

différents instants (champ 1).
Je voudrais avoir un champ contenant le nombre
d'enregistrement pour

la journée en cours...
Illustration :

date | truc1 | truc2 | nb
01/01/01 12:00 216534 35458 5
01/01/01 13:00 216534 35458 5
01/01/01 14:00 216534 35458 5
01/01/01 15:00 216534 35458 5
01/01/01 16:32 216534 35458 5
02/04/03 12:00 216534 35458 2
02/04/03 15:00 216534 35458 2
03/05/10 12:00 216534 35458 1

Le problème est de calculer le champ 'nb'.
En gros, je n'y arrive pas. Après divers essais de
requêtes SQL,

relation entre tables, tables intermédiaires...
Merci beaucoup !

Manu
.