Koppeling selectievak hoofdformulier met selectievak subformulier

Status
Niet open voor verdere reacties.

NickMeeder

Gebruiker
Lid geworden
15 jul 2009
Berichten
14
Hoi,

Ik zit al een tijd met het volgende probleem te stoeien: (office 2007)

Ik heb een hoofdformulier met daarin de basisgegevens van een offerte. Op het hoofdformulier wil ik selectievakjes maken die gekoppeld zijn aan de selectievakjes in het suformulier. Omdat ik een hele lange lijst met producten heb die allemaal verschillende eigenschappen heb wil ik op deze manier een filter kunnen maken. Dus wanneer ik in het hoofdformulier de kleur rood aanvink en ook de maat xl wil ik alle producten (en ook alleen maar die) te zien krijgen die deze eigenschappen hebben. ZOdat ik vervolgens zelf het meest geschikte product uit kan kiezen.

Ik heb meer dan 30 eigenschappen waar ik op wil selecteren dus een regulier filteropdracht zou te langzaam gaan. En mij lijkt het dus handig om met selectievakjes te werken. Wanneer iemand een ander idee heeft hoor ik het graag.

Ik hoop dat iemand mij kan helpen! Alvast bedankt! :thumb:
 
Wat is precies de vraag? Als ik het zo lees, denk ik dat het allemaal niet zo moeilijk hoeft te zijn; ik ga ervan uit, dat je hoofdformulier is gebaseerd op een tabel met artikelen, en dat je subformulier daar een selectie uit moet laten zien?
Of moet ik het zien als één formulier met een kop- en voetsectie, waarbij je in de kopsectie je selectiecriteria bepaalt, waarna de artikelen die aan de keuze voldoen getoond worden in de detailsectie? (Zo zou ik he doen, eerlijk gezegd...)

Maar graag dus iets duidelijker wat je wilt horen..

Michel
 
Bedankt voor je snelle reactie.

Zoals jij het als 2e beschrijft wil ik het graag hebben. Wellicht is het onderstaande wat duidelijker:

Ik heb een hoofdformulier met daarin de gegevens van een aanvraag van een klant. Deze klant vraagt bijvoorbeel om een transport van een tractor van Rotterdam naar Antwerpen (en de vrachtwagen dient een semidieplaadtrailer te trekken).

In het subformulier wil ik vervolgens een koppeling maken naar alle vervoerders in mijn bestand.

Maar om handmatige selectie te ontlopen wil ik in het hoofdformulier kunnen aanklikken:
- Rotterdam (want ik zoek een vervoerder rond Rotterdam)
- Antwerpen (want misschien zit er een vervoerder uit antwerpen in rotterdam)
- Semidieplaadtrailer (omdat dit de enig manier is om deze tractor te vervoeren)

De bedoeling is dan dat ik vanuit de selectiekriteria in het hoofdformulier een selectief aantal vervoerders krijg in het subformulier zodat ik die vervolgens kan benaderen.

Ik hoop dat het zo duidelijk is :D alvast bedankt!
Nick
 
Still confused... :confused:

Mijn tweede voorbeeld was eigenlijk geen voorstel voor een hoofd- en een subfrmulier, maar één formulier, met in de kop van het formulier de selectie-opties. Je wilt die variant, zeg je, maar legt vervolgens variant 1 uit....

Geeft niks, ik denk wel dat ik je snap ;) Je hoofdformulier is dus gebaseerd op je klanten, daar hangt een subformulier in, dat verder niet gekoppeld is aan de gegevens in het hoofdformulier. En je wilt kunnen filteren op de bron van het subfomulier.
Als je de gegevens uit het hoofdformulier alleen gebruikt om klantgegevens op te zoeken, dan zou ik het hoofdformulier niet koppelen aan een tabel of query, maar alleen een keuzelijst gebruiken om de klant op te zoeken, en eventueel extra tekstvakken om aanvullende gegevens van die klant te laten zien.
Je kunt er voor het subformulier voor kiezen om bij elke verandering in de selectie een aangepaste lijst met vervoerders te krijgen, of je kunt eerst alle selecties maken, en dan met een knop de lijst bijwerken.
De tweede variant is minder werk om te maken, de eerste variant laat je sneller het resultaat van je filteringen zien, maar is wat ingewikkelder programmeren.

En daarmee komen we automatisch bij het werk dat je zult moeten doen.... Want hoe ga je te werk? Als je met selectievakjes werkt, heb je best veel ruimte nodig op het formulier, misschien kun je verschillende opties combineren in een keuzelijst, wat uiteraard ruimte scheelt. De Optie <Semidieplader> lijkt mij een optie uit een lijstje, en die zou je dus ook in een keuzelijst kunnen zetten.
Wat je ook kiest, je zult voor elke optie een Gebeurtenis moeten maken op <Na Bijwerken> . Hiermee maak je een querystring die de filtering op de bron van het subformulier zet.
Als de bron van het subformulier bijvoorbeeld <Vervoerders> heet, dan is de standaardweergave van het formulier "Select * From Vervoerders".
Op het selectievakje Dieplader krijg je dan een gebeurtenis <Na Bijwerken> die daar het volgende aan toevoegt:

Code:
If chkDieplader =True then strSQL= "Select * From Vervoerders Where Type='Dieplader'"
Me.RowSource=strSQL
Me.Requery

En op deze manier werk je alle combinaties af.
Het grote idee is dus, dat je alle varianten voor de filtering verwerkt in een SQL statement, die je vervolgens als bron toewijst aan het formulier. Vervolgens wordt het formulier ververst met Requery.

Alles bij elkaar dus een hoop werk, omdat je een hoop varianten wilt kunnen afvangen, die allemaal in de query moeten worden opgenomen. Daarbij gebruik je voor de eerste filtering WHERE, en elke volgende voeg je toe met AND.
Dus daar moet je nog rekening mee houden...

Heb je hier hulp bij nodig, dan is het wel handig om een voorbeeldje te posten, want dat scheelt een hoop tijd...

Michel
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan