En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour vous proposer des contenus et services adaptés. Mentions légales.

Forum - Questions sur Access - Regrouper les résultats en éclosion COVID


 


le 07/05/2021 : 00:04
par Pedro

Anonyme

visiteur

Bonjour,

j'ai déjà un ensemble de requêtes et de code VBA pour parvenir à mes fins0 mais c'est laborieux et j'ai une faute aléatoire pour environ un cas sur 500.  Je souhaiterais avoir un avis distinct du mien pour déterminer si je refais mes traitement d'une autre manière.

J'ai donc des données sur l'identification d'entreprises et d'autres relationnelle pour des travailleurs malades à partir d'une date quelconque.  Ma première démarche consiste à regrouper et trier par entreprise et par date de début des symptômes car il s'en ajoute à chaque heure.

quand c'est fait je passe le tout dans une moulinette VBA via requête contenant ma fonction.  mon objectif consiste à détecter un milieu en éclosion dont le critère initial est d'avoir 2 malades dans une même entreprise dans une période de 14 jours.  Il est donc important ici de comparer les lignes avant de passer à la suivante et décider si on est en éclosion ou pas.  La même moulinette VBA détermine aussi si l'éclosion se termine lorsque s'écoule 14 jours dans nouveau cas au sein de l'entreprise.  Actuellement, j'attribue un code d'éclosion temporaire à partir d'un compteur qui s'incrémentera au besoin dans les boucles de programmation.

Mon problème, je pense, est que pour y parvenir il y a une question d'horloge dans ma fonction VBA car si j'ai beaucoup de cas dans une éclosion, la boucle tourne plus longtemps qu'un certain délais et ainsi ma boucle se termine prématurément (d'où probablement mon erreur aléatoire).

comment voyez-vous la chose pour faire autrement ou mieux.  Comme je l'ai dit, ici j'ai besoin de comparer les lignes et c'est tout un défi.  

Pour être certains de votre compréhension sur le début des éclosions, sachez ceci (4 exemples):

* 2 cas ou plus le jour 1 est évidemment une éclosion débutant ce jour 1

* un cas le jour 1 suivi d'un 2e cas le jour 12 marque le début d'éclosion le jour 1

* un cas le jour 1 suivi d'un 2e cas le jour 16 et d'un 3e cas le jour 20 provoque une seule éclosion débutant le 16 (le cas du jour 1 est juste hors-éclosion).

* si une éclosion reste sans nouveau cas durant 14 jours révolu, celle-ci est réputée terminée et selon les critère initiaux, une nouvelle éclosion pourrait s'ajouter dans la même entreprise.

merci de m'aider à voir plus clair

Poster une réponse Haut  
Réponse n° 1
--------
le 07/05/2021 : 16:11
par 3Stone

3Stone

Administrateur


Bonjour,

Citation : « Pedro »

Ma première démarche consiste à regrouper et trier par entreprise et par date de début des symptômes car il s'en ajoute à chaque heure.

Sans connaître tous les détails, avec seulement la description, je dirai que la démarche ne semble pas mauvaise.

Sauf pour une chose: la fonction dans la requête...

Une fonction ne peut ramener qu'un résultat et ne me semble pas assez souple pour traiter les dates de début, la période, etc.

Je gèrerai cela directement par le VBA, ce qui permettrait de mémoriser par des variables les dates de départ, de calculer des durées et période.

Si la seconde date arrive après la période admise, elle devient la date de départ.

Si l'enregistrement suivant appartient à une autre entreprise, on annule la date de départ mémorisée.

Éventuellement, pousser les cas "à traiter" dans une table temporaire pour faciliter la suite à donner.

Quant à : "la boucle tourne plus longtemps qu'un certain délai..."

Le nombre total de travailleurs ne doit pas se compter en millions, et ainsi ne prendre que quelques secondes, au plus. Tout cela à condition que la base possède bien des tables avec de bonnes clés primaires, relations et autres index!

Cordialement,

Pierre (3Stone)

Poster une réponse Haut  
Réponse n° 2
--------
le 06/10/2021 : 23:24
par pedro

Anonyme

visiteur

Salut 

mieux vaut tard que jamais. 

quelques jours après la suggestion, le script VBA a entièrement été refait de manière unique et non seulement, ça allait mieux, mais c'était ultra rapide.

merci

Poster une réponse Haut  
Réponse n° 3
--------
le 08/10/2021 : 14:39
par 3Stone

3Stone

Administrateur


Bonjour,

Oui, Le choix de la bonne méthode fait parfois des miracles wink

Pierre (3Stone)

Poster une réponse Haut  
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message
Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter  
Catégories de discussion  Forum  



Vous êtes ici :   Accueil » Forum » Questions sur Access » Regrouper les résultats en éclosion COVID