In het voorbeeld zit nog een verborgen formulier. Dat kun je toonbaar maken via <Extra>, tabblad Weergave, optie <Verborgen Objecten>. Daarna kun je op wat mij betreft de optie Verborgen wel uitzetten bij de eigenschappen van het formulier frmPrijslijst_Toevoegen. Is in het voorbeeld niet handig dat-ie verborgen is

De truc met OpenArgs is eigenlijjk heel simpel: je hebt een hoofdformulier waarin je een selectie maakt. Vervolgens wil je een aantal gegevens van dat record uit het hoodformulier gebruiken op een tweede formulier. Die gegevens wil je uiteraard niet over hoeven te tikken.
Via een knop kun je, in het voorbeeld onder de knop <Prijs toevoegen> een formulier openen met de opdracht DoCm.Openform. Als je daar de code van bekijkt, zie je dat er een filterstring wordt gemaakt, waarbij een aantal velden uit het hoofdformulier bij elkaar wordt gezet, gescheiden door een | teken.
Deze filterstring wordt als laatste element toegevoegd aan de DoCmd opdracht.
Hiermee geef je het tweede formulier a.h.w. een extra tekststring mee, die in het tweede formulier weer uit elkaar wordt getrokken.
Als je dan ook het tweede formulier bekijkt, zie je dat met de regels
If Not IsNull(Me.OpenArgs) Then
sArgs = Split(Me.OpenArgs, "|")
het argument OpenArgs in een matrix variabele wordt gezet. Deze constructie moet wel via een matrix, omdat je in een OpenArgs argument maar één string kunt opnemen. Wil je meerdere variabelen gebruiken, dan moet je die dus kunnen splitsen.
Vervolgens wordt de matrixvariabele sArgs op de verschillende elementen van het formulier gezet. Dit hele proces doe je in het Load-event van het tweede formulier, want je wilt de gegevens bij openen al ingevuld hebben.
Als je het handiger vindt als ik het op jouw db toepas, dan mag je hem uiteraard wel posten, zal ik er een blik op werpen!
Michel