با سلام
بله این کار از طریق کد نویسی پشت کلید هایی مربوطه امکان پذیر می باشد .
اتفاقا روش بسیار مناسب تری هم هست . و یکی از مواردی است که ما آن را در بهینه سازی پایگاه های داده مطرح می کنیم .
چرا که در روش اول چندین رکوردست با یکدیگر باز شده و این مطلب سرعت کار با پایگاه داده و همچنین عملکرد آن را به هنگام استفاده در بستر شبکه دچار مشکل می سازد ولی در روش دوم ( پیشنهادی شما ) این مشکلات حل شده و هر بار به غیر از فرم اصلی تنها یک رکوردست باز شده است .
انجام اینکار در مثال مورد نظر شما به شرح زیر می باشد :
1- ابتدا فیلد های link master fields و link child fields رو برابر با مقدار ID قرار دهید .
2- کد های زیر را به ترتیب در رویداد های On click دکمه sub form A1 و sub form A2 و Sub form A3 بنویسید:
Child35.SourceObject = "table A1 subform"
Child35.SourceObject = "table A2 subform"
Child35.SourceObject = "table A3 subform"
در ضمن در اکسس 2010 کنترلی جدید به نام navigation اضافه گردیده که دقیقا همین وظیفه را بر عهده دارد .
هنگام استفاده از این کنترل که یک کنترل ترکیبی از چند دکمه و یک ساب فرم می باشد ، کافی است خاصیت navigation target name را برای هر دکمه تنظیم کرده و نام فرمی را که می خواهیم در ساب فرم آورده شود بنویسیم .
بنا براین بدون هیچ کد نویسی می توان با استفاده از کنترل navigation به این هدف دست یافت .
البته استفاده از این روش نقاط ضعف مختص خود را نیز بدنبال خواهد داشت .