lparameters tcOfficeId =seek(tcOfficeId,"mytable","myOfficeIdTag") * Child table would automatically limit the contacts to specific OfficeId * Or if this is a RO form then you could : * select * from myOffice, myContacts ; where myOffice.OfficeId = myContacts.OfficeId ; and myOffice.OfficeId = tcOfficeId ; into cursor myThisFormCursor * and use myThisFormCursor for thisform * if you need only one parameter passed back then * you could make thisform modal and in unload return the whatever value you want * Caller would call like : do form myAssignment with SomeId to BackValue * Or a smarter way : * Caller would call like : do form myAssignment with SomeId, this * Passing itself to called form makes called form capable of using caller's PEM * Shorter : do form myAssignment with this && Because now called form could * access any PEM of caller * Now new init of called : lparameters toCaller this.oCaller = toCaller && Save to a custom form property =seek(toCaller.myOfficeIdtxtbox.value,"mytable","myOfficeIdTag") * Some button's click event code - Some change in caller thisform.oCaller.mySomeTxtbox.value = ; thisform.anothertxtbox.value && Change some value in caller * If it has programmaticchange event code see fancy result thisform.oCaller.refresh() && and refresh the caller :)Cetin