selectie met meerdere zoekvelden

Status
Niet open voor verdere reacties.

tigo01

Gebruiker
Lid geworden
11 dec 2011
Berichten
47
Hi, ik heb een vraag over zoekvelden. Ik wil een scherm maken waarop een gebruiker meerdere (4) zoekvelden kan invullen. Maar hij kan ook kiezen voor 1 of bijv 2 zoekvelden. Kan ik de resultaten nou in 1 query gebruiken? Oftewel, kan ik zoekvelden die niet zijn ingevuld toch verwerken in mijn query. Ik heb nu het idee dat ik alle combinaties moet afvragen met de daarbij behorende query. Dat zouden dan 16 combinaties zijn. Dat moet toch handiger kunnen. Ik ben benieuwd naar het antwoord. Alvast dank daarvoor.

Mvg. Tigo
 
Die 16 combinaties zie ik eerlijk gezegd niet zo, en deze opmerking

Kan ik de resultaten nou in 1 query gebruiken?
begrijp ik ook niet helemaal; je hebt het in de zin ervoor over een scherm (=Formulier, neem ik aan?) waar de keuzelijsten in staan. Dan heb je de data toch ook in dat formulier staan?
Maar omtrent het filteren zelf: je kunt een (best uitgebreide) functie gebruiken die ongeacht het aantal en het soort veld een filter opbouwt (dus tekstvakken combineren met keuzelijsten combineren met datumvelden etc), ofwel weet je al bij voorbaat dat je maximaal 4 keuzelijsten en/of tekstvakken laat filteren. In het laatste geval kun je de functie hard baseren op die 4 keuzelijsten. In de laatste situatie loop je door alle keuzelijsten heen, en kijk je of ze gebruikt zijn of niet. Zijn ze dat wél, dan lees je ze uit en voeg je ze toe aan een tekstvariabele sFilter. Iets als (dummy code):

Code:
Function Filteren()
Dim sFilter As String
     If Me.Keuzelijst1.Value & "" <>"" Then
          If sFilter <>"" Then sFilter = sFilter & " AND "
          sFilter=sFilter & "[Veld1] = """ & Me.Me.Keuzelijst1.Value & """"
     End If        
     If Me.Keuzelijst2.Value & "" <>"" Then
          If sFilter <>"" Then sFilter = sFilter & " AND "
          sFilter=sFilter & "[Veld2] = """ & Me.Me.Keuzelijst2.Value & """"
     End If        
 etc.
          
     If Not sFilter = "" Then          
          Me.Filter = sFilter
          Me.FilterOn = True
     Else
          Me.Filter = ""
          Me.FilterOn = False
     End If
End Function

En bij elke keuzelijst zet je dan de actie (Na bijwerken bijvoorbeeld)
Code:
     Filteren
 
Laatst bewerkt:
selectievelden

Hi Octafish, sorry voor mijn wazige vraag :confused: maar je antwoord was wel precies wat ik nodig had. Thanks.

Mvg. Tigo
 
Ik heb in het voorbeeld alleen tekstvelden getest, voor getallen en datums moet je uiteraard andere filterstrings gebruiken.
 
selectievelden

Uiteraard :d Nogmaals mijn dank.

Mvg. Tigo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan