Select met vinkjes

Status
Niet open voor verdere reacties.

Excel01

Gebruiker
Lid geworden
13 nov 2011
Berichten
129
Ik heb een query met klanten. een van de kolommen heet vasteklanten_J_N. Met WAAR en ONWAAR kan ik dus laten zien wie vasten klanten zijn en wie niet. Ik moet dus elke keer WAAR en ONWAAR wijzigen in de query. Nu vraag ik me af of het mogelijk is om met vinkje aan en uit te regelen. Vinkje aan laat alleen vaste klanten zien en Vinkje uit laat alleen NIET vasteklanten zien.

En tweede vraag is hoe kan vaste klanten tellen. =aantal(klanten)?
 
Ik snap je probleem niet helemaal. Als je wilt kunnen switchen in de query, kun je ook 2 queries maken. Dat maakt niet zo veel uit, lijkt mij.
 
Ik heb voorkeur voor vinkje of knop waarmee je klanten kan verbergen of zichtbaar maakt. ik weet helaas niet hoe ik dat moet. ook googelen heeft nog niets opgeleverd.
 
Je uitlegt helpt nog niet veel, vrees ik. Laat ik er voor het gemak van uit gaan dat je de complete query als Recordbron voor een rapport gebruikt, dat lijkt mij wel zo handig. Dan zie je daar dus nu alle klanten op, ongeacht de status van het selectievakje. Dan kun je in de Koptekst van het formulier een selectievakje maken dat je gebruikt om het formulier te filteren. De waarde van het selectievakje wordt dan gebruikt om de gewenste records te laten zien. Dat is, in mijn ogen, de meest gebruikelijke oplossing. Nadeel: zodra je begint met het selectievakje, is het ofwel de ene selectie, ofwel de andere. Maar nooit meer alle records. Dat komt omdat een selectievakje Waar of Onwaar is, verder niks. Je zult dan dus ook een knop moeten hebben die het filter volledig verwijdert.
 
Krijg je het ook gebouwd?
 
In essentie heb je dus een selectievakje nodig, en een knop. Die hebben elk een eigen gebeurtenis:
Code:
Private Sub chkFilter_Click()
    Me.Filter = "[VasteKlant] = " & Me.chkFilter
    Me.FilterOn = True
End Sub
Hiermee filter je het formulier op de waarde van het selectievakje.
Code:
Private Sub cmdFilterWeg_Click()
    Me.Filter = ""
    Me.FilterOn = False
End Sub
En hiermee verwijder je het filter zodat je alles ziet.
 
tnks Octafish het werk zoals ik in gedachten had.
Nog een ding ik wil dat bij he openen van het formulier het vinkje altijd uit staat.

Zo iets DoCmd.OpenForm "Klanten, , ,chkfilter = false
 
Dan zet je die filtering bij de gebeurtenis <Bij aanwijzen> van het formulier.
 
Octafish bedant.
Het werkt heel goed. ik zit met een ding.
Op t formulier heb ik een aantal filters staan. Met een knop kan deze filters uitzetten/resetten.
Echter ik wil deze filter waarmee ik klanten kan filteren niet uitzetten/resetten.
ik wil dat deze filter altijd blijft staan alleen als ik deze af vink dan pas in werking.

weet iemand hoe.
 
Het makkelijkst is om na het resetten het gewenste filter weer in te stellen.
 
klopt wel wat jij zegt. maar het is heel erg irritant om elke keer dat in te stellen. ik gebruik filters vaak en dus moet ik elke keer deze filter aan zetten. mocht je een oplossing hebben graag.
 
Ik bedoelde natuurlijk ook via de VBA procedure waarmee je het filter opheft.
 
Volgens mij staat alle code die je nodig hebt in bericht #8.
 
En anders hier:
Code:
Private Sub cmdFilterWeg_Click()
Dim tmpChek As Variant
    
    tmpChek = Me.chkFilter
    Me.Filter = ""
    Me.FilterOn = False
    Me.Filter = "[VasteKlant] = " & tmpChek
    Me.FilterOn = True
End Sub
Ik heb er even een variabele tussen gezet die ook de status van het veld meepakt als het veld VasteKlant nog niet is aangeklikt. In dat geval heeft het selectievakje de waarde Null, en die kan je niet in een Boolean vangen, maar wel in een variant.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan