Waarde van hoofdformulier als standaardwaarde in subformulier

Status
Niet open voor verdere reacties.

debruynba

Gebruiker
Lid geworden
13 jul 2007
Berichten
10
Ik gebruik een subformulier om records toe te voegen aan een tabel prestaties. Het hoofdformulier dient om een klant te selecteren.

De bedoeling is een waarde van het hoofdformulier als standaardwaarde over te nemen in het subformulier.

Is dit via een standaardwaarde onder de vorm van Me.<naam van besturingselement> van in het hoofdformulier?
Of is dat via het kenmerk voor klikken met Lookup ?

Als er iemand me op weg kan helpen?
 
Om een standaardwaarde in te geven die later kan aangepast worden door de gebruiker. bv. het leveradres wordt standaard ingevuld met het hoofdadres van de klant, maar kan voor sommige klanten aangepast worden, moet je de default waarde/standaardwaarde in het subformulier invullen. Het gemakkelijkst doe je dat met een korte VBA code in de on current event van het hoofdformulier.
iets als Me.[naam subform control op hoofdform].form.[naam veld op subform].default = me.[naam veld op hoofdform dat de waarde bevat].
 
Als je hoofd- en subformulier goed hebt ingericht (KlantID zowel in de tabel met klantgegevens en KlantID óók in prestaties) dan koppelt Access doorgaans automatisch de klantID’s en hoef je dus helemaal niets te doen. De oplossing van Noella is dus helemaal niet nodig, gewoon via de eigenschappen de twee formulieren koppelen.
 
daardoor worden de default values niet ingevuld
 
Ach wat zeg je nu toch? Om te beginnen: je moet natuurlijk helemaal niet willen dat van een bepaald veld uit tabel A alle waarden worden overgezet worden naar tabel B. Dat is enorme (doorgaans nutteloze) dataredundantie. Dat kun je dan ook veel slimmer oplossen. Je hoeft, tenzij het een slecht gebouwde database is, dus maar één veld over te nemen uit de hoofdtabel, en dat is het koppelveld. En dat gebeurt automatisch. En je kunt dat veld, dat je dus ook op je subformulier wilt zien, gewoon in de query opnemen die je voor dat formulier gebruikt. Dan staat-ie er al gelijk helemaal netjes in. Hoef je helemaal niks bijzonders verder voor te doen.
 
voor de duidelijheid mijn voorbeeld:
bv. het leveradres wordt standaard ingevuld met het hoofdadres van de klant, maar kan voor sommige klanten aangepast worden
het gaat dus niet over data redundantie maar nieuwe gegevens die in 80% van de gevallen al kunnen ingevuld worden met standaard gegevens.
 
Wat heeft jouw voorbeeld met de situatie van TS te maken? Ik geef antwoord op de situatie van debruynba, niet die van jou. :)
 
Als je het hoofdformulier alleen voor een zoek actie wil gebruiken, dan hoef je helemaal geen hoofd/sub formulier constructie te gebruiken. Plaats de keuzelijst in de hoofding van het formulier en via de after update gebeurtenis van de combobox/keuzelijst kan je op eenvoudige wijze de filter van het formulier instellen/wijzigen. Daarvoor kan je een macro of VBA gebruiken, wat je het liefst gebruikt.

iets zoals
Code:
if len( me.naamzoeklijst) > 0 then
    me.filter = "veldnaam = """ & me.naamzoeklijst & """"  '(als tekstveld)
    me.filteron = true
else
    me.filteron = false
end if
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan