التخطي إلى المحتوى الرئيسي

التحكم بصلاحيات المستخدمين لكل نموذج او تقرير بشكل مستقل في مايكروسوفت اكسس مع مثال عملي





1- انشاء جدول للمستخدمين يحتوي على رقم واسم المستخدم وكلمة المرور (ونوعهما نص قصير)  

يمكنكم مشاهدة الفيديو او الاستمرار في قرأة الموضوع




2- انشاء جدول للصلاحيات يحتوي على انواع الصلاحيات بالاضافة الى حقل كومبوبوكس بياناته مرتبطة بالمستخدمين (رقم المستخدم واسمه) وحقل كومبوبوكس مرتبط بكائنات البرنامج عن طريق استخدام جدول Msysobjects  (ستجدون الطريقة في الفيديو)

 3- انشاء نموذج للدخول الى قاعدة البيانات وليكن باسم Login
عندما يقوم المستخدم بادخال اسم وكلمة مرور صحيحين يقوم البرنامج بفتح لوحة التحكم او النموذج الرئيسي للعمل كما يقوم بتسجيل رقم المستخدم في المتغير usrID الذي تم تعريفة في الموديل (الموجود في الخطوة 4)
للمزيد يمكن الرجوع الى موضوع انشاء نموذج للدخول الى قاعدة البيانات (انقر هنا) ، ونقوم باضافة جميع الحقول الخاصة بالصلاحيات الية في تذييل النموذج ونجعل التذييل مخفي 


4انشاء دالة يتم استدعاؤها عند فتح اي نموذج نريد ان نضيف له الصلاحيات ( او ادراج كود الصلاحيات في النموذج بشكل مباشر بدون انشاء الدالة
VBA
Public usrID As Integer ' سنستخدم هذا المتغير للاحتفاظ برقم المستخدم


Public Function Privilege(frm As Form)
'------------------------------------------------------------------------------------
'االتاكد من صلاحية اضافة سجل وتفعيلها او تعطيلها
If DLookup("cadd", "TblPrivilege", "StUser=" & usrID & "AND StForm ='" & frm.Name & "'") = False Or IsNull(DLookup("cadd", "TblPrivilege", "StUser=" & usrID & "AND StForm ='" & frm.Name & "'")) Then
frm.AllowAdditions = False
End If

'االتاكد من صلاحية حذف سجل وتفعيلها او تعطيلها
If DLookup("cdell", "TblPrivilege", "StUser=" & usrID & "AND StForm ='" & frm.Name & "'") = False Or IsNull(DLookup("cdell", "TblPrivilege", "StUser=" & usrID & "AND StForm ='" & frm.Name & "'")) Then
frm.AllowDeletions = False
End If

'االتاكد من صلاحية تعديل سجل وتفعيلها او تعطيلها

If DLookup("CEdit", "TblPrivilege", "StUser=" & usrID & "AND StForm ='" & frm.Name & "'") = False Or IsNull(DLookup("CEdit", "TblPrivilege", "StUser=" & usrID & "AND StForm ='" & frm.Name & "'")) Then
frm.AllowEdits = False
End If

End Function



نعود الى النماذج التي نريد تطبيق الصلاحيات عليها وعند فتح النموذج نقوم باستدعاء الدالة Privilege التي انشأناها  بالكود التالي
VBA
Private Sub Form_Open(Cancel As Integer)
Call Privilege(Me)
End Sub


تعليقات

  1. السلام عليكم كيف استدعي اسم المستخدم Public usrID As Integer في فاتورة

    ردحذف
  2. بارك الله فيك أخي على الدرس الأكثر من الرائع

    ردحذف
  3. السلام عليكم ورحمه الله وبركاته، أخى لكريم شكراً لمجهودك، لكن أنا مش عارف أجيب منين Table "MsysObject"، أرجو الأجابة وشكراً لمجهودك الكريم

    ردحذف
  4. جزاك الله خير على الشرح الممتاز
    وكذلك يجيزك خير انك ارفقة المثال

    ردحذف
  5. الله يجزاك كل خير علي الشرح الوافي منذ متي وانا ابحث عن تلك الموضوع وان سمحت لي سؤال يارب يارب تتذكرني وتضع لي الاجابة
    كيف يمكن عمل الكود في الوحدة النمطية لخاصية الفتح
    وعملت رسالة بعدم الفتح مثل ما حضرتك اشرت ولكنه يفتح
    اريد معرفة كود فتح او عدم فتح النموذج

    ردحذف
  6. ممكن شرح خاص للديلوك اب على الماكرو بنفس طريقه الكود حاولت ماضبطت معي

    ردحذف
  7. ممكن شرح خاص للديلوك اب على الماكرو بنفس طريقه الكود حاولت ماضبطت معي

    ردحذف
  8. ممكن شرح خاص للديلوك اب على الماكرو بنفس طريقه الكود حاولت ماضبطت معي

    ردحذف

إرسال تعليق

المشاركات الشائعة من هذه المدونة

انواع الاستعلامات في اكسس

(Access Queries) الاستعلامات في اكسس انواع الاستعلامات  يتيح مايكروسوفت اكسس للمستخدم اختيار نوع الاستعلام حسب حاجة المستخدم وتعتمد الاستعلامات في اكسس على SQL  في بناء وتصميم الاستعلام. استعلام تحديد (Select) يساعد هذا النوع من الاستعلامات على انشاء جدول بسجلات محددة، مثلا في جدول الاصناف ممكن ان ننشئ استعلام للاصناف التي لونها احمر، او ممكن ان ننشئ استعلام مبني على جدول الاصناف وجدول الموردين لانشاء جدول يحتوي على اسم المورد (من جدول الموردين) واسم الصنف الذي تم شراؤه من هذا المورد (من جدول الاصناف) استعلام انشاء جدول (Make Table) يقوم هذا النوع من الاستعلامات بانشاء جدول جديد اي اننا ننشئ الاستعلام من جدول او اكثر ثم يتحول هذا الاستعلام الى جدول جديد سواء في قاعدة البيانات الحالية او في قاعدة بيانات اخرى. استعلام الحاق (Append) ويستخدم لالحاق بيانات من جدول او اكثر ليتم اضافتها الى جدول اخر استعلام تحديث  (Update) وهذا النوع من الاستعلامات يستخدم لتحديث قيمة موجودة في جدول بقيمة اخرى موجودة في جدول اخر استعلام انشاء الجدا...

انشاء الجداول في اكسس

انشاء الجداول في اكسس بعد انشاء ملف اكسس جديد فان الخطوة الاولى ستكون انشاء الجداول، ولانشاء الجداول نتبع ما يلي: 1- اختيار create  كما في الصورة 2- نقوم باختيار Table او Table Design والامر متروك للمستخدم، وانا بشكل شخصي افضل Table Design 3- بعد اختيار Table Design ستفتح لنا نافذة تصميم الجدول كما في الصورة 4- الحقل الاول Field Name يتم فية ادخال عناوين الاعمدة (الحقول) 5- الحقل الثاني Data Type يتم فية تحديد نوع المتغير (رقم ، نص ، تاريخ ...الخ) 6- الحقل الثالث Description وهو حقل اختياري ويتم فية ادخال وصف لهذا العمود 7- في كل جدول يجب تحديد المفتاح الاساسي ويجب ان يحتوي هذا الحقل على قيمة فريدة لا تتكرر مع اي حقل اخر. 8 - بعد الانتهاء نقوم باغلاق الجدول وعندها ستظهر نافذة لتحديد اسم الجدول وحفظة . 9- بعد فتح الجدول سيكون شكله كما في الصورة 10- نلاحظ ان عنوان العمود الاول ظهر كما تم كتابتة في التصميم اما العمود الثاني فقد ظهر اسمة باللغة العربية والسبب انه تم اضافة تسمية للعمود من خصائص الحقل اثناء تصميم الجدول كما في الصورة وبذلك يكو...

Combo Box & List Box القائمة المنسدلة / مربع التحرير والسرد / مربع قائمة في اكسس خطوة بخطوة

 القائمة المنسدلة /  مربع التحرير والسرد / مربع القائمة   في مايكروسوفت اكسس  Combo Box & List Box ملاحضة : ما ينطبق على القائمة المنسدلة (Combo Box) ينطبق على مربع القائمة (List Box) في هذا الموضوع القائمة المنسدلة اومربع التحرير والسرد هي احدى الكائنات التي تستخدم في نماذج الاكسس وتظهر فيها مجموعة من القيم يحددها المبرمج للتسهيل على المستخدم في عملية الاختيار او لاجبارة على مجموعة من الخيارات فقط توجد اكثر من طريقة لاضافة قائمة منسدلة الى النماذج ومنها: الطريقة الاولى: - من خلال خصائص الحقل في الجدول، فاذا تم تغيير نوع الحلقل الى Combo Box في الجدول فانه عند اضافة هذا الحقل الى النماذج  سيقوم الاكسس باضافة قائمة منسدلة الى النموذج وبشكل تلقائي ولها نفس الخصائص الموجودة في الجدول.   الطريقة الثانية :- من خلال اضافة قائمة منسدلة من خلال تصميم النموذج ،ويتم ذلك من خلال اضافة القائمة المنسدلة من القائمة Design  ومن ثم ادراج القائمة في النموذج  1- بعد ادراج القائمة المنسدلة سيفتح المعالج وذلك للتحكم بخصائص...