In de nieuwsbrief staat elke maand een nieuwe aflevering van een Access cursus die ik schrijf. De oude afleveringen vind je in de Handleidingensectie.
Om je een beetje op weg te helpen, hier een voorbeeldje voor één filterveld:
Maak in de Recordbron van je rapport een extra veld aan met de optie Zichtbaar uit.
Code:
Veld1: IIf([Forms]![frmFilter_Rapport]![c2] Is Null;Waar;[Forms]![frmFilter_Rapport]![c2]=[Systeem])
Criterium: <>Onwaar
In dit voorbeeld heb ik een keuzelijsten met de namen c1, c2, c3 etc. Elke keuzelijst is gekoppeld aan een Tabelveld waar je het formulier op filtert. In de query van het rapport maak je vervolgens zoals gezegd een nieuw veld aan voor elk veld waarop je wilt filteren. De IIF functie geeft twee uitkomsten: ofwel TRUE als de keuzelijst leeg is, ofwel wordt het veld vergeleken met de waarde uit de keuzelijst. Die laatste vergelijking levert dan WAAR of ONWAAR op. Waar uiteraard als de waarde uit de keuzelijst gelijk is aan die van het veld.
Zou je de query zonder meer uitvoeren, en het veld zichtbaar laten, dan zie je dus ofwel de waarde uit de keuzelijst, ofwel de tekst WAAR. Door nu te filteren op <>ONWAAR haal je alle records weg die niet voldoen aan het criterium ONWAAR. En dat zijn dus de overeenkomende bij een gekozen waarde, of alle records als het keuzelijstje leeg is.
Wat je dus moet doen, is voor elk veld waarop je wilt filteren zo'n constructie maken. Uiteindleijk kun je dan filteren op je formulier/rapport zonder te programmeren.