[ACCESS] MAJ de données avec regroupement

ELDEWEN -  
 Eldewen -
Bonjour,

J'ai un petit soucis sous access :
j'ai développer une base de données pour la gestion du personnelle qui fonctionne dans des plaines de jeux (juillet et août). Les plaines sons divisées en périodes (4 périodes: 1é et 2é semaine de juillet, 3é et 4é semaine de juillet, 1é et 2é semaine de août, 3é et 4é semaine de aoûti) et les animateurs peuvent êtres sélectionnés pour plusieurs périodes.

Quand les plaines de jeux sont terminées, les agents qui y ont travaillés recoivent un point (ce qui permet de calculer l'ancienneté).

Le problème est que les agents ne recoivent que 1 point par plaines maximum, qu'ils aient travaillé 1 ou plusieurs périodes.

dans ma base ACCESS j'ai 4 tables: 1 table agents (qui contient le champs nombre de points); 1 table centre de plaines de jeux; 1 table périodes et 1 table attributions.

j'ai essayé de faire la mise a jour des point grâce à une requête de MAJ en filtran sur l'année de l'attribution , mais le probléme est que les agents qui ont fonctionnés plusieurs périodes sur l'années reçoivent plusieur points.

J'ai essayé avec une requête de sélection utilisant un regroupement , mais il est alors impossible de modifier les données du champs [nombre de points].

Du coup, je suis coincé....

Toutes propositions seraient les biens venues.

D'avance Merci

Fabrice
A voir également:

1 réponse

jymad Messages postés 3 Statut Membre
 
une solution pas trop élégante , mais le SQL Access ne permet pas les UPDATE SET (subquery) à ma connaissance :
faire une requete : select distinct plaine, intervenant from attribution
ou bien select plaine,intervenant from attribution group by plaine,intervenant
puis la requête de comptage
select intervenant, count(*)as "points de l'année" from "requete precedente"
puis la requete de recréation de la table intervenant
select intervenant,...,"points de l'année"+ points acquis from intervenant inner join "requete de comptage" on intervenant= intervenant
0
Eldewen
 
Bonjour jymad,

Merci pour ta réponse, ta proposition m'a donné une idée pour solutionner mon pb.

Voici la solution que j'ai trouvé :
1 . une requête de création de table avec les champs année(correspondant à une valeur dans un champs formulaire) réfEncadrants et points groupé => du coup j'ai une nouvelle table mais ou les agents qui ont fonctionné l'année de référence n'apparaisse plus qu'une seul fois.
2. une requête de mise à jour à partir de la table nouvellement crée ou points =[points]+1
3. une requête de mise à jour ou les données à jour des points dans la nouvelle table sont copié dans la tableEncadrants( avec une liaison [réfEncadrants] pour la nouvelle table avec le champs [réfEncadrants] dans la table Encadrants)
4. un petit script en VBA associé à un bouton(sur clic) qui exécute les 3 requêtes apprès confirmation de l'utilisateur.

encore merci pour le coup de pouce... ;-)
0