Opgelost Lees data van hoofd Form

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

RobertJB66

Gebruiker
Lid geworden
2 feb 2022
Berichten
219
Ik heb een hoofd form en een subform.
De data link tussen de twee form's zijn diverse velden.

Als ik een beperkt filter uitvoer heeft het hoofd form nog 3 records en het sub-form laat alles zien wat aan dit beperkte filter voldoet, maar meer dan wat het hoofd form weer geeft.

Een voorbeeld:

Data in hoofdform en subform:
Datum, Locatie, Lijn, Batch
Het subform heeft dan ook nog: Aantal, Gem, std

Als ik nu alleen op datum filter dan heeft het hoofdfrom op die datum 3 registraties en het subform er 30.

Ik zou nu graag de data die wordt weergegeven in het hoofd form gebruiken als een filter voor het subform.

Voor het filteren van de data in het hoofd en subform gebruik in nu de onderstaande code:

Code:
qdf.SQL = "SELECT Top 3000 * FROM EECQ_View WHERE " & ptFilter & ""

Ik wil nu eigenlijk de inhoud van "ptFilter" vullen met de gegevens die zichtbaar zijn in het hoofdform.

Er is op het hoofdform een record selector kan ik die gebruiken om de onderliggende data in het filter te stoppen of kan ik de data uit de textboxen van het hoofdform in het ptFilter voeren?
 
Ik snap er eerlijk gezegd niet veel van. (om te beginnen snap ik niet waarom je de letters "ulier" niet kan vinden op je toetsenbord :)). Je hebt een hoofdformulier en een subformulier die, naar het zich laat aanzien, dus niet goed gekoppeld zijn, want het subformulier laat andere records zien dan je volgens het hoofdformulier zou verwachten. Normaal gesproken bepaalt de selectie (het actieve record) op een hoofdformulier welke records je ziet op een subformulier. Zo te zien heb je dus een niet-afhankelijk formulier als object op een ander formulier gezet, en dan kun je eigenlijk niet spreken van een hoofdformulier/subformulier constructie.

Dus de vraag: wat heb je precies gedaan? En je snapt het al: een voorbeeldje zegt meer dan 1000 woorden :).
 
Ik begrijp het niet goed geloof ik. Je gebruikt delfde query als recordbron voor het hoofd- en het subformulier?
 
Dank voor de sneller reactie en sorry voor de beperkte uitleg.

Het klopt dat het hoofd formulier en het sub formulier niet gekoppeld zijn.
Dit komt doordat er een filter gebouwd wordt dat veel variabele heeft. (datum, locatie, lijn nr, batch, product).

Door het te doen via een filter dat in een query wordt gestopt kan ik min of meer een rapport weergegeven in een formulier.

Mijn vraag is hoe kan ik de data die in het hoofdformulier in textboxen wordt weergegeven in een filter stoppen dat dan gebruikt wordt om het subformulier te filteren.

Bij een knop is er .Caption de inhoud hiervan is uit te lezen en kan ik in een filter stoppen. Hoe kan ik dit doen bij een textbox?
 
Het klopt dat het hoofd formulier en het sub formulier niet gekoppeld zijn.
Je oorspronkelijke vraag begon je nu juist met te zeggen dat er een "data link" is tussen hoofd- en subformulier. Maar goed, als je ze nu juist wel koppelt op overeenkomstige waardes? In het subformulier zie je dan alleen gegevens waarvan de gekoppelde gegevens gelijk zijn aan die in het hoofdformulier.

Maar zoals gezegd: een voorbeelddatabase doet wonderen.
 
Je kunt uiteraard prima een filter dat je op je hoofdformulier bouwt overbrengen naar een ander formulier. Zelf zou ik dat doen door de SQL van de query die je onder dat andere formulier gebruikt aanpassen middels het QueryDef object. Dan heb je verder geen gezeur over syntax, die nogal tricky is bij filters vanuit formulier A overbrengen naar formulier B.

Dus mijn werkwijze:
1. Filter samenstellen op formulier A
2. Query onder formulier B vervangen met QueryDefs
3. Formuliergegevens verversen.
 
Kan je in het geval van recordbron hoofdformulier = recordbron subformulier niet veel beter en eenvoudiger te doen een split formulier gebruiken?
 
Een Split formulier werkt met dezelfde gegevens. Dus ook met dezelfde filtering. TS gaf aan dat in het subformulier ook meer velden zitten. Dus vandaar de twee aparte formulieren. Bovendien werkt dat prima met mijn werkwijze.
 
Dank jullie voor de bijdrage.

Ik ben nu eigenlijk nog alleen op zoek naar welke actie er nu werkelijk uitgevoerd wordt bij het commando "Me. XYZ.Form.requery" zodat ik na deze .requery direct de data direct de data uit de verschillende velden kan halen om als filter voor het subformulier te gebruiken. Het werkt allemaal al als ik op de volgende of vorige record druk alleen nog niet bij als het eerste initiële filter wordt gedaan voor het hoofdformulier.
 
Die informatie vind je in de Help :). Met Requery ververs je de gegevens die in bron van het formulier zitten. Wil je ook het formulier verversen, dan kun je nog een Me. XYZ.Form.Repaint toevoegen. Dat zou genoeg moeten zijn.
 
Die informatie vind je in de Help :). Met Requery ververs je de gegevens die in bron van het formulier zitten. Wil je ook het formulier verversen, dan kun je nog een Me. XYZ.Form.Repaint toevoegen. Dat zou genoeg moeten zijn. Overigens doe je de Requery als (voor)laatste, niet als eerste. Of anders begrijp ik dit verkeerd:

Ik ben nu eigenlijk nog alleen op zoek naar welke actie er nu werkelijk uitgevoerd wordt bij het commando "Me. XYZ.Form.requery" zodat ik na deze .requery direct de data direct de data uit de verschillende velden kan halen om als filter voor het subformulier te gebruiken.
Met heen- en weer bladeren ververs je (repaint) je sowieso dus je data, maar dat kun je ook doen vanuit het actieve record. Nogmaals: het antwoorden gaat echt zoveel sneller als je een voorbeeldje meestuurt :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan