Dubbel filter met 2 listboxen

Status
Niet open voor verdere reacties.

Bert Bakker

Gebruiker
Lid geworden
8 mei 2006
Berichten
39
Best Forum,

Ik snap het weer eens niet. Ik heb deze vraag ook op het OF geplaatst, maar tot op heden geen antwoord ontvangen.
Ik heb een keuzelijst waarin 2 kolommen worden weergegeven. In kolom 1 staat een lijst met namen van personen en in kolom 2 staat in welk stadsdeel de betreffende persoon woont. (De lijst geeft personen weer die nog niet gekoppeld zijn aan een vrijwilliger.)
Bij het openen van het formulier wordt de keuzelijst gevuld op basis van een project uit een keuzelijst met invoervak. Prima! De bijbehorende code:

Code:
SELECT DISTINCT tblDLN_Deelnemer.DLN_ID, ([DLN_Voornaam]+" ") & ([DLN_Vgsl]+" ") & [DLN_Achternaam] AS Naam, DLookUp("SNG_Stadsdeel","tblSNG_Straatnamengids","SNG_Postcode='" & [DLN_Postcode] & "'") AS Stadsdeel, tblDLN_Deelnemer.DLN_Achternaam 
FROM (tblDLN_Deelnemer LEFT JOIN qlkDLN_Gekoppeld ON tblDLN_Deelnemer.DLN_ID = qlkDLN_Gekoppeld.DLN_ID) INNER JOIN tblPDN_ProjectDeelnemer ON tblDLN_Deelnemer.DLN_ID = tblPDN_ProjectDeelnemer.PDN_DLN_ID 
WHERE (((qlkDLN_Gekoppeld.DLN_ID) Is Null) AND ((tblPDN_ProjectDeelnemer.PDN_PRO_ID)=GetCurrentProject())) 
ORDER BY tblDLN_Deelnemer.DLN_Achternaam;

Ik zou nu een tweede filter willen toepassen: een keuze op stadsdeel. Dat lukt mij tot nu toe alleen met de volgende code:

Code:
SELECT DISTINCT tblDLN_Deelnemer.DLN_ID, ([DLN_Voornaam]+" ") & ([DLN_Vgsl]+" ") & [DLN_Achternaam] AS Naam, DLookUp("SNG_Stadsdeel","tblSNG_Straatnamengids","SNG_Postcode='" & [DLN_Postcode] & "'") AS Stadsdeel, tblDLN_Deelnemer.DLN_Achternaam 
FROM (tblDLN_Deelnemer LEFT JOIN qlkDLN_Gekoppeld ON tblDLN_Deelnemer.DLN_ID = qlkDLN_Gekoppeld.DLN_ID) INNER JOIN tblPDN_ProjectDeelnemer ON tblDLN_Deelnemer.DLN_ID = tblPDN_ProjectDeelnemer.PDN_DLN_ID 
WHERE (((DLookUp("SNG_Stadsdeel","tblSNG_Straatnamengids","SNG_Postcode='" & [DLN_Postcode] & "'"))=[formulieren]![frmMain]![cboStadsdeel]) AND ((qlkDLN_Gekoppeld.DLN_ID) Is Null) AND ((tblPDN_ProjectDeelnemer.PDN_PRO_ID)=GetCurrentProject())) 
ORDER BY tblDLN_Deelnemer.DLN_Achternaam;

Dit werkt wel, echter bij het openen worden geen persoonsnamen in de keuzelijst weergegeven en pas wanneer ik een stadsdeel kies zie ik de personen uit dat betreffende stadsdeel.
Eigenlijk wil ik bij het openen van het formulier in de keuzelijst alle personen zien van een geselecteerd project en pas wanneer ik de keuze maak voor het stadsdeel wil ik de personen zien van dit project die in het geselecteerde stadsdeel wonen.

Misschien dat hier iemand is die me hier bij helpen?

Ik vrees dat het weer een lang verhaal is geworden, sorry!

Groet,

Bert
 
Bert,

begin eens (wat je op OF ook is gevraagd en wat je tot op heden niet hebt gedaan....) met het bijsluiten van je bestand.

Tardis
 
Beste Tardis,

Dank voor je antwoord. Misschien moet je mijn bericht is nog eens goed bekijken op het OF (http://office.webforums.nl/viewtopic.php?t=40912). Ik heb tot op heden nog geen antwoord gehad. (Althans, ik zie geen antwoord en als jij die wel ziet, heb ik toch een serieus probleem!) Dus kon ik ook geen bestand bijvoegen. Dat levert trouwens überhaupt een probleem op. Het bestand waar ik in werk is niet bij te voegen. Ik denk een hoop werk te moeten verrichten om dit in een temp bestand te verwerken. Eigenlijk hoopte ik dat iemand mij het zonder het bestand bij te hoeven voegen in een goede richting te kunnen helpen. Als dat niet kan: jammer en OK.

Groet,

Bert
 
Je zult toch echt even een voorbeeldbestand bij moeten sluiten.
Zo moeilijk moet dat toch niet zijn?

Tardis
 
Ik begrijp je methodiek niet helemaal: je hebt twee keuzelijsten; één voor personen, en één voor stadsdelen. Je wilt eerst de lijst met personen (op basis van een project) vullen, vervolgens uit de lijst met stadsdelen een stadsdeel kiezen, en daarna weer terug naar de lijst met personen, om een aangepaste lijst te kunnen zien? waarom maak je niet gewoon drie keuzelijsten, waarbij je de selectie op een natuurlijke wijze verkleint? Project --> Stadsdeel --> Persoon?
Of, als je toch al op één project werkt, niet Stadsdeel --> Persoon?
Ook vind ik een keuzelijst met een DLookup erg omslachtig... Ik snap overigens wel waarom hij niet doet wat je wilt, omdat je in de keuzelijst een waarde nodig hebt uit de Stadsdelen lijst. Je hebt geen voorziening gemaakt voor een lege waarde op die combobox.
 
Forum,

Vandaag heb ik lopen puzzelen en ben er uit gekomen (ben wel even bezig geweest!).
Via debug.print en proberen het selectstatement in een nieuwe query te plakken is het uiteindelijk gelukt.

Bij het openen van het formulier wordt in een keuzelijst, personen weergegeven op basis van een standaard geselecteerd project. Vervolgens kan ik via een keuzelijst met invoervak een stadsdeel selecteren die vervolgens via een selectstatement de rowsource aanstuurt van de keuzelijst met personen (volg je het nog?).

@Michel,
Hartelijk dank voor je moeite mij alsnog te helpen!
Het werkt op zich wel zoals je voorstelt: Project --> Stadsdeel en vervolgens een overzichtslijst met de personen die aan de criteria voldoen. (Project en stadsdeel zijn beide keuzelijsten met invoervak en de weergavelijst is een gewone keuzelijst.)
De DLookup is idd wel omslachtig (en werkt enigszins vertragend), maar hier weet ik geen andere manier voor. De postcode van de client wordt opgezocht in een tabel met postcodes waar meteen een stadsdeel, buurtcode en buurt aan gekoppeld is. En ja, ik denk dat je het moet zien om goed te snappen wat ik bedoel en hoe je het dan anders kunt doen. Maar zoals al aangegeven, het is veel werk om een dummy te bouwen.

Ben weer een stuk wijzer geworden en ook blij dat het doet wat ik wil.

Groet,

Bert
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan