Sorry, kleine layoutcorrectie
Misschien zijdelings een tip: om het even waar (op forms, in query's) kan je verwijzen naar velden in subformulieren, als je de volgende formulering respecteert:
Neem bvb. een veld op een subsubformulier (veldX op formC, dat op formB staat, dat weer op formA staat): [Forms]![formA]![formB].[Form]![FormC].[Form]![veldX]. Let erop: telkens geef je met .[Form] "dit is een subformulier", en daar MOET een punt voor staan géén uitroepteken! Je geeft dus eigenlijk het volledige pad aan, met de instructie dat Access niet moet zoeken naar een veld, maar naar een subformulier (dat een soort "superveld" is).
Je kan dan bvb. in een query, of in een stukje VBA in het formulier, voor een bepaald criterium de waarde van veldX ophalen en er iets mee doen; bvb. If Waarde > [Forms]![formA]![formB].[Form]![FormC].[Form]![veldX] Then MsgBox("Deze waarde is te groot"); Else: MsgBox("Deze waarde is OK").
Wat ik dan doe om dat OOK in een doorlopend formulier te laten weergeven - meestal is dat veel handiger dan een enkelvoudig:
1. In mijn query neem ik een aantal variabelen op die ik een waarde geef met dit soort berekeningen; dat zijn gewoon querykolommetjes waar ik geen veld in sleep, maar die ik als volgt invul: (bemerk: IIf = immediate if)
Variabele 1: TeGroot: IIf([Forms]![formA]![formB].[Form]![FormC].[Form]![veldX]>100;"TE GROOT";"") - dwz: als de voorwaarde vervuld is, heb ik een string "TE GROOT", anders een lege string
Variabele 2: OK: IIf([Forms]![formA]![formB].[Form]![FormC].[Form]![veldX]<=100;"OK";"") - idem, maar omgekeerd
Nu heb ik dus twee variabelen, die voor elke record zullen worden berekend.
2. Op mijn doorlopend formulier plaats ik nu deze "berekende velden" letterlijk bovenop elkaar, maar beide transparant; de ene geef ik een rode, de andere een groene letterkleur.
3. Mijn formulier zal in elk record de juiste "commentaar" geven: de ene blijft leeg en dus onzichtbaar, de andere is opgevuld en dus zichtbaar - geen achtergrondkleur, wel bvb; onderlijnen, vet, enz...; pas je in je formulier de uitgangswaarde aan waarop de berekening wordt uitgevoerd, dan is onmiddellijk ook de "commentaar" juist. Dat is een soort uitbreiding of alternatief van voorwaardelijke opmaak.
In het algemeen kan je zeggen dat dit soort truken het voor een minder ervaren VBA-programmeur makkelijker maken, vind ik ☺☺☺.