Waarde toekennen aan een veld (in tabel) aan de hand van waarde van Watergehalte

Status
Niet open voor verdere reacties.

mschrijver

Gebruiker
Lid geworden
1 apr 2011
Berichten
40
Goedemiddag Heren (en dames niet te vergeten),

Ik heb een vraagje.

Ik heb een lijst met 5 monsters. Elk monster heeft een watergehalte.

Nu is het de bedoeling dat er een proctornummer aan wordt gehangen, aan de hand van de waarde van Watergehalte.

De hoogste waarde krijgt P5
Een na hoogste krijgt P4
.....
Laagste krijgt P1

Nu weet ik dat je doormiddel van een Select statement (met MIN of MAX) de laagste en hoogste waardes er uit kan halen, en zou kunnen gebruiken voor wat voor een clause dan ook.

Mijn vraag is echter, is er ook een manier om de een na hoogste of een na laagste eruit te filteren?

Alvast bedankt.
 
Vraag is niet zo populair zo te zien :) Het antwoord is ook niet zo simpel, want er is inderdaad geen simpele methode om de een na hoogste waarde te filteren. Een methode zonder VBA die je zelf wel kunt proberen is via een aantal queries, waarbij je sorteert op ProctorNummer, en dan de Top 2 records laat zien. Iets als: SELECT TOP 2 ProctorNr. Deze query gebruik je dan als basis voor een volgende query, waarbij je dan met Min of Max de hoogste of laagste opvraagt. Als je dus eerst de twee hoogste waarden opvraagt met TOP 2, dan krijg je met Min(ProctorNr) in de tweede query de tweede waarde uit je bestand.

Eventueel kun je de eerste query als subquery gebruiken, zodat je alles in één query kunt onderbrengen. Maar de optie met meerdere queries is een stuk makkelijker...
 
Goedemorgen Octafish,

Bedankt voor je reactie. Ik was er al bang voor dat dit wel eens een flinke uitdaging (zacht uitgedrukt) zou kunnen worden. Ben er al een tijdje mee aan het expirimenteren, maar tot een oplossing heeft het echter nog niet geleid.

Ik wil u danken voor uw suggesties. Mocht ik tot een oplossing komen, laat ik het wel even weten.
 
Het valt wel mee, qua uitdaging (hoop ik voor je :) ). Probeer eerst een variant waarbij je met deelqueries werkt. Dus eerst een query die op basis van de sorteervolgorde op het veld ProctorNummer de Top 2 records laat zien. Bij Oplopend sorteren zie je de hoogste twee, bij aflopend de laatste 2. Deze queries gebruik je dan om met Min (bij de query die de hoogste 2 filtert) de een na hoogste, en Max de een na laagste (bij de query die de laagste 2 filtert) op te zoeken. De gevonden waarden en recordID's gebruik je dan in je vervolgqueries.
 
Ik zat even te spelen.. En toen bedacht ik het volgende.

Als ik mijn huidige formulier, in 2en splits.

Op de eerste wordt onder anderen de watergehalte uitgerekend.

En als ik dan een 2e formulier maak, met een bijbehorende query. En ik groepeer de query op Watergehalte (aflopend) dan heb ik automatisch de hoogste waarde bovenaan, gevolgd door de een na hoogste etc..

Dan is het alleen nog maar een kwestie van het toekennen van de Proctornummers.

En dat zou eventueel met een Loop kunnen, zodat alles automatisch wordt ingevuld.

Of zeg ik nu iets heel fouts / geks?
 
Geen idee; ik ken je db niet :) Maar probeer 't eens uit. Als het werkt, werkt het!
 
Opgelost door in de query het volgende te doen:

Prctrid: "P" & ((Select Count(*) From queryveldgegevens As Dummy Where Dummy.natdchthd> [queryveldgegevens].[natdchthd])+1)

Nu kan ik door middel van PrctorID berekeningen uitvoeren.

Ik wil u danken voor uw hulp.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan