التحكم بصلاحيات المستخدمين في مايكروسوفت اكسس - شرح عام
تحديد الصلاحيات لكل مستخدم بشكل منفصل في
اكسس
عندما يتم تصميم برنامج سيستخدمة اكثر من شخص
فلا بد من ان يكون لكل مستخدم مستوى صلاحية مختلف عن الاخر، ولتحديد الصلاحيات لكل مستخدم بشكل منفصل توجد اكثر من طريقة واليكم هذة الطريقة والتي اعتبرها من الطرق العملية جدا:
1- انشاء جدول للمستخدمين يحتوي على اسم المستخدم وكلمة المرور (ونوعهما نص قصير) بالاضافة الى انواع الصلاحيات، وهنا يجب ان يتم فصل كل صلاحية بحقل مستقل ويكون نوع البيانات في هذه الحقول (نعم / لا) كما في الصورة التالية
2- انشاء نموذج للدخول الى قاعدة البيانات وليكن باسم Login
عندما يقوم المستخدم بادخال اسم وكلمة مرور صحيحين يقوم البرنامج بفتح لوحة التحكم او النموذج الرئيسي للعمل
للمزيد يمكن الرجوع الى موضوع انشاء نموذج للدخول الى قاعدة البيانات (انقر هنا)
3- انشاء النماذج التي سيتم العمل عليها ووضع الصلاحيات لها (وانا افضل ان يتم انشاء لوحة تحكم) كما يلي
1- انشاء جدول للمستخدمين يحتوي على اسم المستخدم وكلمة المرور (ونوعهما نص قصير) بالاضافة الى انواع الصلاحيات، وهنا يجب ان يتم فصل كل صلاحية بحقل مستقل ويكون نوع البيانات في هذه الحقول (نعم / لا) كما في الصورة التالية
2- انشاء نموذج للدخول الى قاعدة البيانات وليكن باسم Login
عندما يقوم المستخدم بادخال اسم وكلمة مرور صحيحين يقوم البرنامج بفتح لوحة التحكم او النموذج الرئيسي للعمل
للمزيد يمكن الرجوع الى موضوع انشاء نموذج للدخول الى قاعدة البيانات (انقر هنا)
3- انشاء النماذج التي سيتم العمل عليها ووضع الصلاحيات لها (وانا افضل ان يتم انشاء لوحة تحكم) كما يلي
سيفتح هذا النموذج بعد الضغط على موافق في نموذج الدخول (بعد ان تكون معلومات الدخول صحيحة) وفي هذا النموذج نبدأ باستخدام الصلاحيات كون اسم المستخدم اصبح معروف لدينا وهو موجود في نموذج الدخول (Login) وسنقوم بوضع الكود للصلاحية التي نريد تطبيقها، فمثلا سنضع كود يتم تنفيذه عند فتح النموذج يقوم بالتاكد من ان المستخدم الحالي لديه صلاحية مدير ام لا واذا لم يكن لديه هذة الصلاحية سيتم تعطيل زرالدخول الى الصلاحيات الموجود في النموذج اعلاه، وعليه فان الكود سيكون كما يلي:
' الكود التالي سيتحقق من ان للمستخدم صلاحية المدير واذا لم يكن لدية صلاحية سيقوم بتعطيل زر الصلاحيات
If DLookup("isadmin", "tblusers", "userName='" & [Form_login].usr & "'") = False Then
Command4.Enabled = False
End If
If DLookup("isadmin", "tblusers", "userName='" & [Form_login].usr & "'") = False Then
Command4.Enabled = False
End If
وممكن ان نضع كود اخر في حدث عند الفتح سيتاكد من ان المستخدم لديه صلاحية فتح نموذج الاصناف واذا لم تكن لديه هذة الصلاحية فانه سيتم تعطيل زر الاصناف الموجود في النموذج اعلاة
' الكود التالي سيتحقق من ان للمستخدم صلاحية فتح نموذج لاصناف واذا لم يكن لدية صلاحية سيقوم بتعطيل زر الاصناف
If DLookup("OpenProductForm", "tblusers", "userName='" & [Form_login].usr & "'") = False Then
Command2.Enabled = False
End If
If DLookup("OpenProductForm", "tblusers", "userName='" & [Form_login].usr & "'") = False Then
Command2.Enabled = False
End If
شكراً لكم
ردحذفمشكوووووووووور أستاذنا الغالي
ردحذفإذا أمكن مثال (VBA) عن الصلاحيات التي وضعتها
وعند إضافة مستخدم جديد كيف يتم توزيع الصلاحيات عليه من خلال النموذج (form)
بارك الله فيك وفي علمك
والله معلومات جميله وقيمه وبارك الله لكم وجزاكم الله خيرا ان شاء الله
ردحذفوكمبتدئ اريد معرفة كيفية حماية الاعمدة التى تحتوى عل ارقام او درجات لعدم تغيرها الا بمعرفتى فقط . وجزيل الشكر مقدما ا
الشرح ممتاز
ردحذفالله يبارك بيك على هذا الشرح الرائع
ردحذف.ياريت لو كان الملف مرفق معه