laden uit query

Opnieuw uitvogelen

Gebruiker
Lid geworden
14 nov 2023
Berichten
26
Ik heb een formulier en dat wil ik filteren op een reeds bestaande query. Ik zie wel de optie in het grijs laden uit query als ik in het formulier zit.
Als ik op formulier filter druk, dan wordt hij wel zwart, maar dan kan ik geen query kiezen.
kan iemand me vertellen hoe dit werkt?
 
Wat wil je bereiken?
 
Hoe heb je het formulier gekoppeld? Aan een opgeslagen query, of aan een SQL query? Sowieso zou ik altijd op het formulier filteren, en niet in de onderliggende query.
 
Op het formulier filteren lukt me dus niet. Ik heb een database met leden en als ik het formulier open krijg ik alle leden. Zowel de huidige als de oude. Ik zou hier graag een filter opzetten dat ik in de formulieren alleen blader tussen de huidige leden
 
Het ligt er aan of je op het formulier in bepaalde gevallen ook oud-leden wilt zien. Ook is het van belang te weten hoe je kunt zien of iemand een huidig lid is of een oud-lid.
Als je altijd alleen maar huidige leden wilt zien, maak je een query om huidige leden te selecteren en baseer je het formulier op die query.
Wil je kunnen kiezen, dan zou je ook knoppen op het formulier kunnen zetten waarmee je een filter activeert of uitzet.

Zelf doe ik de ledenadministratie van een kleine sportvereniging in Access. Het ledenformulier opent met huidige leden en nog-niet-geanonimiseerde oud-leden. Ik heb twee knoppen op het formulier waarmee ik een filter voor alleen huidige leden kan aan- of uitzetten:
Code:
Private Sub ActueleLeden_Click()
    Me.Filter = "IsNull(Einddatum) or Einddatum > Date()"
    Me.FilterOn = True
End Sub


Private Sub AlleLeden_Click()
    Me.FilterOn = False
End Sub
 
ja die knoppen zouden me zeker helpen. Maar kun je me uitleggen hoe je die knoppen hebt ingesteld? Het gaat bij mij ook om een muziekvereniginging. Dus waarschijnlijk vergelijkbaar als bij jou
 
Laatst bewerkt door een moderator:
Even een opmerking Ter Algemeen Nut: blijf uit de buurt van de knop Citeren als er niks te citeren is. Dit is een nutteloze quoot. Je antwoord kon je gelijk in het tekstvak zetten.

De code is heel algemeen, want Me.Filter etc. werkt onder elke knop die je maakt. Kwestie van een nieuwe knop maken, en daar een gebeurtenis aan hangen bij de Eigenschappen van die knop op het tabblad Gebeurtenissen. Die actie hang je dan aan de gebeurtenis Bij klikken>. Je hoeft dus alleen de code te kopiëren die tussen de eerste regel (Private Sub…) en laatste regel (End Sub) staat.

In jouw geval zou ik volstaan met een Wisselknop, en dus afzien van twee knoppen, wat het voorstel van Peter is. Twee knoppen nemen immers meer ruimte in dan één knop, en in essentie wil je ook alleen maar een filter aanzetten of uitzetten. Dat kan dus net zo makkelijk met één knop.

Of, als alternatief: gebruik één Opdrachtknop voor de twee acties. Dat doe ik zelf meestal. Ik verander dan met de gebeurtenis ook de Caption (de tekst op de knop). Op basis van de tekst “Filter aan” zet ik dan de caption op “Filter uit” en het filter aan, en op basis van de tekst “Filter uit” zet ik de caption op “Filter aan” en het filter uit.

Dus iets als:

Code:
Private Sub cmdFilter_Click()
If Me.cmdFilter.Caption = “Filter aan” Then
    Me.Filter = "IsNull(Einddatum) or Einddatum > Date()"
    Me.FilterOn = True
    me.cmdFilter.Caption = “Filter uit”
 ElseIf Me.cmdFilter.Caption = “Filter uit” Then
    Me.cmdFilter.Caption = “Filter aan”
    me.FilterOn = False
End Sub
In dit voorbeeld heb ik dus één knop met de naam cmdFilter, die beide acties (aanzetten en uitzetten) regelt. Overigens kan de ElseIf… regel geheel vervangen worden door het woord Else. Er zijn immers maar twee mogelijkheden op deze manier.
 
Laatst bewerkt:
het lukt me niet om die knop toe te voegen. tenminste die knop lukt wel, maar niet de filtering met de knop. ik vind die laatste optie het beste. filter aan of uit met huidige leden. Alleen snap ik niet hoe ik deze moet maken.
 
Ik kan hier bij menu opdracht uitvoeren filter kiezen. Maar dat doet hij niet. Ik krijg de melding dat het momenteel niet beschikbaar is.
 

Bijlagen

  • IMG_7506-compressed.jpeg
    IMG_7506-compressed.jpeg
    28,7 KB · Weergaven: 3
Wat lukt er dan niet? Want in één zin zeg je dat het niet lukt om een knop toe te voegen, én dat dat wél lukt. Hoe kan ik er dan nog chocola van maken?
 
Ik kan hier bij menu opdracht uitvoeren filter kiezen.
Volgens mij heb je een knop met een ingebouwde macro gemaakt. Daar heb ik de ballen verstand van, want ik gebruik dus echt nooit macro's. Moet daar niet aan denken :).
Wil je mijn code gebruiken (en dat zou ik dus aanraden) is om de Eigenschappen van de knop te openen, op het tabblad <Gebeurtenis> te klikken,

Macro naar Gebeurtenis.png

en de optie [Ingesloten macro] te vervangen door Gebeurtenisprocedure. Vervolgens klik je dan op de knop met de drie puntje, zodat je in het VBA venster komt. Daar plak je dan de code uit bericht #7.
 
Terug
Bovenaan Onderaan