تشخیص لود شدن یک فرم در اکسس
بسم الله الرحمن الرحیم
سلام
ولادت جناب رقیه بنت الحسین صلوات الله علیها رو تبریک میگم
چگونه بفهمیم که یک فرم در اکسس باز شده است یا نه؟
چگونه چک کنیم که یک فرم در اکسس لود شده یا نه؟
یک سناریو!
فرض کنید در میان چندین فرمی که در برنامه اکسستان فعال است، دو فرم وجود دارد؛
- فرم اول: یکی صرفا برای نمایش اطلاعات افراد آن هم به صورت لیست (DataSheet)
- فرم دوم: دیگری برای نمایش همان اطلاعات (Single Form)
کاربر برای دسترسی به اطلاعات افراد باید به فرم فهرست اسامی (فرم اول) دسترسی داشته باشد و بعد از کلیک بر روی کنترلر خاص (که توسط شما مشخص و کدنویسی میشود) به فرم دوم دسترسی پیدا میکند تا اطلاعات فرد مورد نظر را ویرایش کند!
پس از ویرایش در فرم دوم، لازم است تا اطلاعات فرم اول نیز بروز رسانی شود. پس باید رکورد سورس فرم اول Requery یا به اصطلاح بروز رسانی شود.
برای اینکار در رویداد OnClose فرم دوم دستور زیر را مینویسیم؛
'ابتدا بر روی آن فوکوس میکنیم' Form_Form1.SetFocus 'سپس آنرا بروز رسانی میکنیم' Form_Form1.Requery
اما یک مشکل!
اگر در برنامه به جز فرم اول، از طریق دیگری به فرم دوم دسترسی داشته داشته باشیم، قطعا با دستوری که در بالا در رویداد خروج فرم دوم نوشتیم پس از خروج از این فرم، دچار خطا میشویم. چرا؟
چون فرم اول اصلا باز نیست (چه برسه تا لود شده باشه) تا بر روی آن فوکوس شود و آن را بروز رسانی کند!
خب راه حل چیست؟
اگر کد زیر را جایگزین کد بالا در رویداد خروج فرم دوم کنیم چطور؟
If CurrentProject.AllForms("Form1").IsLoaded Then Form_Form1.SetFocus Form_Form1.Requery End If
تحلیل شما را در بخش نظرات میخوانم
با سلام و احترام بسیار عالی و سودمند