ورود

View Full Version : تعیین سطح دسترسی از طریق منوهایی که در سابفرم قرار دارد



reza_1199
دوشنبه 09 بهمن 1402, 23:20 عصر
با عرض سلام و شب خوش خدمت دوستان علی الخصوص اساتید سایت
دوستان در برنامه ضمیمه دو منو وجود دارد که در فرم منو اولی اگر دوستان باز کنن سطح دسترسی تعریف شده و منوها در داخل کمبو قرار دارن و با توجه به سطح دسترسی که داده می شود آیتم های کمبو کم و زیاد شده و دسترسی ها تغییر می کند و از این بابت درسته و موردی نداره و در منوی دوم منو ها در داخل سابفرم قرار داره و نتونستم سطح دسترسی رو برای اونا اجرا کنم که در صورتیکه اگر کاربر سطح دسترسی نداشت پیغام شما دسترسی به این فرم ندارید ظاهر شود ممنون میشم دوستان و اساتید راهنمایی کنن به علت حجم زیاد فایل در لینگ زیر قابل دانلود است . سپاس
https://uupload.ir/view/dastrasi_7e7c.rar/

eb_1345
سه شنبه 10 بهمن 1402, 01:22 صبح
سلام
یک راه نیمه حرفه ای اینست که مطابق تصویر ضمیمه در جدول منو دو تا فیلد ایجاد کنی اولی با نام Active و بصورت چک باکس و دومی هم با نام ID_karbar
بعد از اضافه کردن دو تا فیلد فوق حالا از این جدول یک کپی بگبر و با نام مثلا Tbl_Menu_Temp ذخیره کن
در هنگام ایجاد کاربر جدید رکوردهای این جدول که ID_karbar اون خالی است با دستور کد اسکیوال Insert به جدول اصلی Tbl_Menu اضافه میشه و بعد از ایجاد کاربر جدید حالا با کد اسکیوال Update کد کاربر جدید رو به رکوردهای اضافه شده در جدول منو تخصیص میدی
میتونی یک فرم برای سطح دسترسی کاربران از جدول منو ایجاد کنی به این صورت که از داخل یک کمبوباکس کاربر مورد نظر رو سرچ و فراخوانی می کنی و فرمهای مورد نظر رو انتخاب یا از حالت انتخاب خارج می کنی
حالا دیگه در قسمت پنل منوها و در رویداد کلیک هر منو با دستور DlookUp مشخص می کنی که آیا فیلد Active فرم انتخاب شده برای کاربر جاری در جدول منوها فعال است یا خیر اگه فعال بود نمایش داده بشه در غیر اینصورت یا نمایش داده نشه یا پیغامی مبنی بر عدم مجوز نمایش برای کاربر جاری صادر بشه
بنظرم این ساده ترین راهه که پیشنهاد شد. راههای دیگه ای بصورت حرفه ای تر وجود داره که احتمالا بتونی با جستجو در گوگل پیدا کنی
موفق باشی

reza_1199
سه شنبه 10 بهمن 1402, 13:13 عصر
ممنون استاد بابت حسن توجهتون و پاسخی که دادین . اصلا مشکلی با اینکه در سابفرم منوها دیده بشن ندارم فقط میخواستم بنا بر سطح دسترسی کاربر هنگامی که میخواد منویی را باز کنه چون دسترسی بهش داده نشده پیغام شما به این فرم دسترسی ندارید ظاهر شه و بجای منویی که در اون کومبو قرار داره اینبار منوی سابفرمم رو بتونم استفاده کنم . ممنون

eb_1345
سه شنبه 10 بهمن 1402, 15:15 عصر
ممنون استاد بابت حسن توجهتون و پاسخی که دادین . اصلا مشکلی با اینکه در سابفرم منوها دیده بشن ندارم فقط میخواستم بنا بر سطح دسترسی کاربر هنگامی که میخواد منویی را باز کنه چون دسترسی بهش داده نشده پیغام شما به این فرم دسترسی ندارید ظاهر شه و بجای منویی که در اون کومبو قرار داره اینبار منوی سابفرمم رو بتونم استفاده کنم . ممنون

سلام
شرمنده !
من دیشب که پاسخ پست شما رو دادم یمقداری خسته بودم و اصلاً دقت نکردم که در قسمت جداول جدولی برای ذخیره سطح دسترسی کاربران ایجاد کرده ای
برای حل مشکل ابتدا در قسمت کدهای رویداد Command1_Click فرم Frm_Voroud کد زیر رو اضافه کن و در فرم Frm_Menu هم یک تکست باکس با نام ID_karbar درج کن که بعد از ورود کاربر ID_karbar وی در فرم فوق درج شود



Forms![frm_menu]![ID_karbar] = rst![ID_karbar]

سپس با توجه به جدول دسترسی شما میتونی در رویداد کلیک هر فرم در سابفرم مربوطه کد زیر رو درج فرمائید!
من کد زیر رو در سابفرم sub_1 و در رویداد کلیک فرم 3 بکار بردم


If DCount("ID_Sharh_Menu", "Tbl_Dastrasi", "ID_Sharh_Menu=3 and ID_karbar=" & Form_Frm_menu.ID_karbar & "") > 0 Then
DoCmd.OpenForm "form3", acNormal
Else
MsgBox "شما مجاز به مشاهده فرم انتخاب شده نمي باشيد"
Exit Sub
End If


کافیه این کد برای فرم های دیگه هم بکار ببری و در قسمت ID_Sharh_Menu شماره فرم مربوطه رو جایگزین کنی
یا علی

reza_1199
سه شنبه 10 بهمن 1402, 16:05 عصر
سلام و خسته نباشید خدمت استاد بهرامی بزرگوار :
استاد ممنون بابت راهنمایی ، دقیقا همون چیزی که می خواستم بود . سپاس بیکران و آرزوی موفقیت روز افزون

eb_1345
سه شنبه 10 بهمن 1402, 16:15 عصر
دقیقا همون چیزی که می خواستم بود . سپاس بیکران و آرزوی موفقیت روز افزون
خواهش می کنم
خدا رو شکر که مشکلتون حل شد