Selecteren op 4 ja/nee velden

Status
Niet open voor verdere reacties.

Johgs

Gebruiker
Lid geworden
19 mei 2011
Berichten
337
Ik heb een tabel die 4 kolommen bevat met ja/nee waarden (vinkjes)
Bij de meeste gegevens zijn geen van de 4 vinkjes aangevinkt, bij een gering aantal is één van de vier aangevinkt. Gaat om afhandeling van omissies, vandaar dat de meeste data geen vinkje aan heeft staan.

Via een formulier wil ik een rapport genereren met data waarbij één of meerdere vinkjes zijn aangevinkt. Lijkt simpel 4 regels met formulierveld als selectie waarde in de query op 4 regels, dus of A is waar of B is waar enz.

Met alle 4 vinkjes aan, krijg ik precies de gewenste data, maar met 1, 2 of 3 vinkjes of zelfs geen vinkjes krijg ik alle data te zien.
Ook als ik in de query maar bij één van de vier een selectiecriterium invul krijg ik aangevinkt de gewenste waarde en bij niet aangevinkt alles.
Met direct ja in de query krijg ik bij gegevensweergave wel de gewenste gegevens, maar die ja wil ik natuurlijk via het formulier plaatsen.

Moet er misschien als slot een regel komen met einde of? Lijkt er nu op dat als laatste of een geheel blanco regel wordt gebruikten dus alles geselecteerd wordt.
 
Gaat om afhandeling van omissies, vandaar dat de meeste data geen vinkje aan heeft staan.
Ik hoop niet dat je van ons nu verwacht dat wij ook maar het flauwste benul hebben van wat je bedoelt :).

En dat geldt eigenlijk ook voor deze zin:
Met direct ja in de query krijg ik bij gegevensweergave wel de gewenste gegevens, maar die ja wil ik natuurlijk via het formulier plaatsen.

Ik heb het vermoeden dat je de 4 criteria in 4 verschillende regels hebt gezet. Gevolg daarvan is, dat elke regel waar mag zijn. Het totaal van het criterium is dan doorgaans dat alles waar is, en je dus alles ziet. Kun je net zo goed geen criterium gebruiken. Alle criteria in 1 regel zetten werkt ook niet, want dan moeten ze allemaal tegelijk waar zijn. En dat wil je óók niet.

Ik heb voor dit soort problemen een simpele oplossing: ik tel de waarden van de verschillende selectievakjes bij elkaar op. Selectievakjes hebben een waarde 0 of -1, dus de optelling geeft een bruikbaar resultaat. Jij wilt dat de query waar is als één van de selectievakjes is geselecteerd. De som van de selectievakjes moet dus groter of gelijk zijn aan 1. In ieder geval niet nul. Dus in je query maak je een (ik hou hem onzichtbaar) veld aan dat de selectievakjes optelt. Iets als:
PHP:
CheckSom: ABS([chek1]+[chek2]+[chek3]+[chek4])
En het criterium hiervoor is dan: >=1.
 
Wat ik bedoelde maar nu wat uitvoeriger, ik heb heel veel data van aanvoer partijen, af en toe is daarbij iets mis en wordt 1 van de 4 kolommen gebruikt voor registratie van mondelinge waarschuwing, schriftelijke waarschuwing e.d. Dus heel veel data die ik niet in het rapport terug wil zien omdat er niets mis mee was. (Idee 1, eerst een query gebruiken die de "lege" waarden uitfiltert )

Vervolgens wil ik in het rapport alleen de mondelinge wrs zien of de schriftelijke of beide (of alle 4) al naar gelang de instelling op het formulier dat het rapport oproept.

Nu heb ik inderdaad 4 verschillende regels maar als die geen van vieren waar zijn dan krijg ik toch alle waarden te zien waar ze alle 4 niet waar zijn. (en alle 4 aangevinkt dan inderdaad wat ik vraag)

De truc met omzetten naar getallen en optellen had ik inderdaad aan gedacht maar verwachtte dat het simpeler ook zou moeten kunnen en ik kan dan nog niet selecteren. Maar ik ga eerst idee 1 er eens tussen zetten.


Met direct ja in de query bedoelde ik dat als ik op de selectieregel niet verwijs naar een veld op het formulier maar enkel Ja invul, het werkt zoals ik wil.
 
Laatst bewerkt:
Ja/Nee velden hebben, ongeacht de opmaak, altijd de waardes 0 of -1. Filteren op Ja, Waar of -1 levert dus altijd hetzelfde resultaat op. Je zet een Ja/Nee veld dus nooit om, maar gebruikt gewoon de opgeslagen waarde. Daarom is optellen van de Ja/Nee velden met afstand de makkelijkste oplossing.
Wil je het ingewikkelder (dat kan natuurlijk altijd) dan kun je met vier (geneste) IIf functies hetzelfde bereiken. Ik kies liever de simpele oplossing. Tenzij je geen Ja/Nee velden gebruikt, maar tekstvelden waar letterlijk “Ja” of “Nee” in staat, dan moet je wel met IIf functies werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan