J'ai une table dans MS ACCESS 2013 qui ressemble à ceci:MsAccess Supprimer toutes les valeurs, mais une colonne par condition
Id Department Status FollowingDept ActualArea
1000 Thinkerers Thinking Thinkerer Thinkerer
1000 Drawers OnDrawBoard Drawers Drawers
1000 MaterialPlan To Plan MaterialPlan MaterialPlan
1000 Painters MatNeeded MaterialPlan
1000 Builders DrawsNeeded Drawers
Le tableau donne suite à un ID qui doit passer par cinq départements, chaque département avec au moins 5 statuts différents.
Chaque état a une valeur de FollowingDept, comme *Department* Thinkerers
a le statut MoreCoffeeNow qui signifie *FollowingDept* Drawers
.
Toutes les colonnes, sauf ActualArea, sont des colonnes dont les valeurs proviennent du flux d'une requête.
ActualArea est un Expr où j'inséré cette logique:
Iif(FollowingDept = Department, FollowingDept, "")
Ma logique est simple, si le FollowingDept et le ministère coïncident, alors ActualArea de l'ID obtient la valeur de FollowingDept. Mais comme vous pouvez le voir, il peut y avoir de rares cas où un ID est comme mon exemple ci-dessus, où 3 départements coïncident avec le FollowDept. Ces cas sont rares, mais j'aimerais ajouter quelque chose comme une priorité à Access.
Thinkerers a la priorité absolue, puis MaterialPlan, puis Drawers, puis Builders et enfin Painters. Ainsi, en suivant le même exemple, après qu'AccupArea ait reçu 3 valeurs, Access exécutera une autre requête ou sous-requête ou autre, où il évaluera chaque priorité de valeur et ne laissera que celle avec la priorité la plus haute. Ainsi, dans cet exemple, Thinkerers obtient la priorité maximale et les deux autres valeurs sont éliminées de la colonne ActualArea.
S'il vous plaît garder à l'esprit il y a plus de 500 différents ID, chaque identifiant est répété 5 fois, donc nombre total d'enregistrements pour évaluer sera 2500.
Merci, je vais ajouter une nouvelle table comme vous l'avez dit et voir comment ça se passe.En fait, en supposant que tout se passe bien, je vais extraire chaque ID où il y a une valeur dans ActualArea. Comme je l'ai dit, il y a 500 identifiants uniques répétés 5 fois chacun, après avoir obtenu le bon ActualArea je vais extraire cet enregistrement, donc je devrais finir avec une autre table ayant 500 identifiants uniques à nouveau. Merci pour la réponse, – Eduardo
Si vous voulez tout faire en une seule requête, c'est aussi possible. Je peux vous montrer comment faire, si cette requête originale fait ce que vous voulez qu'elle fasse. –