PDA

View Full Version : چگونگی باز کردن فرم از روی آی دی آن به جای نام فرم



rainlover
دوشنبه 26 بهمن 1394, 05:15 صبح
با سلام خدمت کارشناسان عزیز
من می خوام برای تعریف سطوح دسترسی هر کاربر تو جدول Permission بگم کاربر 1 به فرم A دسترسی خواندن داشته باشه.
حالا می خوام اسم فرمها و آیدیشون رو تو یه کومبو باکس بریزم که مدیر سیستم فقط اسم فرم رو ببینه و هنگام تعریف دسترسی ها فرم رو انتخاب کنه کاربر رو هم انتخاب کنه و سطحش رو هم معلوم کنه
از اونجاییکه بارها برام پیش اومده که اسم فرم هامو به هر دلیل عوض کردم لذا نمی تونم رو اسم فرم تکیه کنم. من می خوام از کوئری MsysObjects که هم اسم فرم هام هم آی دی شون رو داره آی دی فرم رو ذخیره کنم تو جدول دسترسی هاو وقتی کاربری اقدام به بازکردن فرمی می کنه اون آیدی ذخیره شده رو به متد بازکردن فرم بفرستم تا بازش کنه. نمیخوام برم دوباره تو کوئری MsysObjects اسم فرم رو در بیارم و دسترسیش رو بررسی کنم.
مخلص کلوم اینکه چطور می تونم یه فرم رو با داشتن آیدیش باز کنم نه با اسمش
پیشاپیش مراتب تشکرم رو از دوستان عرضه می دارم

e601
دوشنبه 26 بهمن 1394, 17:29 عصر
سلام
پیشنهاد من اینه که بجای این روشی که فرمودید، از یک روش استاندارد برنامه نویسی استفاده کنید. که این روش همانا استفاده از ثابت ها (Constant) هست. بعنوان مثال فرض میکنیم برنامه شما 2تا فرم داره:
1. فرم ثبت اطلاعات 2. فرم ویرایش اطلاعات

شما میتونید یک ماژول درست کنید بنام mdlConst و نام فرمها و گزارشات رو در اون بصورت ثوابت public تعریف کنید:

Public Const constFormEnter As String = "frmEnter"
Public Const constFormEdit As String = "frmEdit"

بعنوان مثال هر جای برنامه هم که نیاز داشتید فرم frmEnter رو باز کنید بصورت زیر عمل میکنید:

DoCmd.OpenForm constFormEnter, acNormal

حالا هر وقت تصمیم گرفتید نام فرم frmEnter رو مثلا به frmNew تغییر بدید، فقط کافیه برید به ماژول mdlConst و نام ثابت مربوط به این فرم رو به frmNew تغییر بدید. با اینکار همۀ کدهای شما بدرستی کار خواهد کرد...

rainlover
سه شنبه 27 بهمن 1394, 01:35 صبح
ممنونم پیشنهاد خوبی بود