Filter laden met data uit deel filters

Status
Niet open voor verdere reacties.

RobertJB66

Gebruiker
Lid geworden
2 feb 2022
Berichten
219
Ik heb de volgende uitdaging.

Om de onderstaande functie te laten uitvoeren moet ik de sFilter vullen.

Me.Filter = sFilter

sFilter is gevuld met informatie o.b.v. een case selectie.

Case 0
sFilter = ""
Case 1
sFilter = "Locatie = """ & sLocatie & """"
Case 10
sFilter = "Jaar = " & sJaar
Case 11
sFilter = "Locatie = """ & sLocatie & """ And Jaar = " & sJaar
Case 100
sFilter = "Maand = " & sMaand
Case 101
sFilter = "Locatie = """ & sLocatie & """ And Maand = " & sMaand
Case 110
sFilter = "Jaar = " & sJaar & " AND Maand = " & sMaand
Case 111
sFilter = "Locatie = """ & sLocatie & """ And Jaar = " & sJaar & " And Maand = " & sMaand

Jullie zien al dat dit niet te managen, is met telkens meer data in het filter.

Graag wil het als onderstaande voorbeeld doen. Ik krijg hier echter een foutmelding bij Case 2 en 3 :(:(
Er moet waarschijnlijk een iets extra bij het "And" deel staan. Ik heb echter geen idee wat:confused:

Case 1
sFilter = FLocatie
Case 2
sFilter = FLocatie And FJaar
Case 3
sFilter = FLocatie And FJaar And FMaand


In een apart deel worden:

FLocatie = "Locatie = """ & sLocatie & """"
FJaar = "Jaar = " & sJaar
FMaand = "Maand = " & sMaand

Wie kan mij een zetje in de juiste richting geven:d
 
Ik zou de oorspronkelijke select case gebruiken, maar dan slimmer. Omdat ik de db niet ken, weet ik niet hoe je aan die getallen komt. Maar het oogt te ingewikkeld.
 
Tja slimmer werken :o

Toch nog een vraagje.

Ik krijg natuurlijk een fout melding bij het uitvoeren van de onderstaande functie o.b.v. de informatie die in sFilter staat. De fout melding komt als er geen waarde staat in FJaar, FMaand, of FDag. De waarde die in deze labels staat zijn getallen als 2022, 9 en 27.

Set rs = CurrentDb.OpenRecordset("SELECT DISTINCT Locatie FROM JMDQ WHERE " & sFilter)

sFilter = FLocatie & " And " & FJaar & " And " & FMaand & " And " & FDag & " And " & FLijn

Ik heb diverse zaken geprobeerd zoals: FJaar = "Jaar = " _ FJaar = "Jaar = *" _ FJaar = "Jaar = """ (ditzelfde ook voor de FMaand en FDag).

Als ik 2022 heb geselecteerd dan staat er in FJaar: FJaar = "Jaar = 2022". Fjaar = "Jaar = " & sJaar sJaar is dan de geselecteerd waarde een Integer

Wat moet er op de plaats van 2022 komen te staan zodat er niet op het jaar gefilterd wordt en dat het in sFilter werkt:confused:
ByLXrJoKOP6FAAAAAElFTkSuQmCC
 
Laatst bewerkt:
Stel het filter samen middels een Function:
Code:
Function MijnFilter(Locatie, Jaar, Maand, Dag, Lijn) As String
    MijnFilter = "True"
    If Locatie <> "" Then MijnFilter = [COLOR=#ff0000]MijnFilter &[/COLOR] " AND Locatie=" & Locatie
    If Jaar > 0 Then MijnFilter = MijnFilter & " And Jaar=" & Jaar
    If Maand > 0 Then MijnFilter = MijnFilter & " And Maand=" & Maand
    If Dag > 0 Then MijnFilter = MijnFilter & " And Dag=" & Dag
    If Lijn > 0 Then MijnFilter = MijnFilter & " And Lijn=" & Lijn
End Function

en roep die aan met sFilter=MijnFilter(loc,jr,mnd,dg,ln) of hoe jouw variabelen dan ook mogen heten.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan