الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تطبيق نظام الصلاحيات للمستخدمين

بدأه kaser906 في 1 أبريل 2012 · 10 رد · 2,349 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بالمرفق نموذج يحتوي على ازرار امر

ومركب عليه نظام صلاحيات المستخدمين

بالنسبة للاضافة والتعديل والحذف

كان مركب عند خاصية الفتح للنموذج

قمت بأيقاف الكود عند الفتح للنموذج

ووضعته في خاصية عند التركيز لزر الامر للأزرار الثلاثة في النموذج

المشكلة :

1 - عند فتح النموذج لن يتعرف نظام صلاحيات المستخدمين

على المستخدم اذا كان مسموحاً له بفتح النموذج ام لا بسبب

ايقاف الكود عند الفتح

المطلوب

1- ايجاد طريقة لااعادة تفعيل الكود في النموذج عند الفتح للتعرف على المستخدم اذا كان مسموحا له بفتح النموذج ام لا

من دون ان يحدث تعارض مع نفس الكود الذي وضعته في زر الامر عند التركيز

2- عند النقر على زر اضافة سجل جديد

اذا لم يكن مسموحاً للمستخدم بالاضافة في نظام الصلاحيات ان تأتي رسالة تفيد بأنه غير مسموح له بالاضافه

ينطبق الامر على زر امر التعديل

وكذلك الحذف

اتمنى اكون شرحة المطلوب بصورة واضحة

ملاحظة : اسم المستخدم 2

الباسورد 1

XorLocked.rar

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#2

أخى الكريم

بالنسبة للسؤال الاول

لم أفهم ما الذى تريده بالضبط فالكود موجود بالفعل فى حدث عند الفتح فقط أزل علامات التنصيص من أمامه

و لا أعرف ما أهمية وجود كود التحقق من الصلاحيات عند التركيز على الازرار ؟

أما بالنسبة للسؤال الأول

ضع هذا الكود قبل الكود قبل الكود الموجود فى الزر ( عند الضغط )

If Not Me.AllowAdditions Then
MsgBox "الرسالة المطلوبة"
    Exit Sub
End If
2

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#3
Abo_Yossof كتب:

أخى الكريم

بالنسبة للسؤال الاول

لم أفهم ما الذى تريده بالضبط فالكود موجود بالفعل فى حدث عند الفتح فقط أزل علامات التنصيص من أمامه

و لا أعرف ما أهمية وجود كود التحقق من الصلاحيات عند التركيز على الازرار ؟

أما بالنسبة للسؤال الأول

ضع هذا الكود قبل الكود قبل الكود الموجود فى الزر ( عند الضغط )

If Not Me.AllowAdditions Then
MsgBox "الرسالة المطلوبة"
    Exit Sub
End If

استاذي ابو يوسف

الله يعطيك الف عافية

بالنسبة لسؤالك مالفائده من وضع كود التحقق من الصلاحيات عند الضغط على الازرار

لأن النموذج عند فتحه يكون مقفل والحقول غير ممكنة ومأمنة في نفس الوقت

وتكون الاضافة أو التعديل والحذف عن طريق ازرار أمر

فلو كان المستخدم مسموح له فتح النموذج ولم يكن لدية صلاحية لاضافة سجل وضغط على زر الامر اضافة

سيجد ان البرنامج لايستجيب معه ولا يعرف ما هو السبب فلو خرجت له رسالة عند الضغط بأنه ليست لديه صلاحيات

سيكون افضل

الكود الذي وضعته لي أتى بنتيجة ولكن المشكلة التي واجهتني معه

اني مضطر اني اضعه بكل النماذج بالبرنامج فلماذا لا استفيد من الكود بالوحده النمطية العامة ونستدعيه وقت ما نشاء

اضافة الى ذلك ان بعض النماذج ليست مرتبطه بالجداول مباشرة والحقول بها غير منظمه وهنا عند الضغط

على زر امر اضافة ستفتح الحقول غير المنظمة ويتم الحفظ عن طريق زر امر

ولن يتعرف نظام الصلاحيات على المسستخدم انه يريد اضافة سجل

وتعديل السجلات وحذفها يكون عن طريق زر امر بالنموذج الفرعي

اعتقد ان الموضوع لدي شائك جداَ ولن استطيع ايصال ما اريده بكل دقة

لكن خلاصة ما توصلت اليه اني بحاجة الى تعديل هذا الكود

Public Sub FrmAbilities(frmName As String)
Dim SF As Control, strsbfrm As String
With MyUser
   If .GetAbility(frmName, OpenForm) Then
      ContinueCode = True
      Forms(frmName).AllowAdditions = .GetAbility(frmName, Add)
      Forms(frmName).AllowEdits = .GetAbility(frmName, Edit)
      Forms(frmName).AllowDeletions = .GetAbility(frmName, del)
      For Each SF In Forms(frmName).Controls
        If SF.ControlType = acSubform Then
            strsbfrm = SF.SourceObject
           If Not IsNull(DLookup("FRM", "FRMS", "FRM = '" & strsbfrm & "'")) Then
            If .GetAbility(strsbfrm, OpenForm) Then
            SF.Form.AllowAdditions = .GetAbility(strsbfrm, Add)
            SF.Form.AllowEdits = .GetAbility(strsbfrm, Edit)
            SF.Form.AllowDeletions = .GetAbility(strsbfrm, del)
            Else
            SF.SourceObject = ""
            SF.Visible = False
            End If
           Else
            SF.Form.AllowAdditions = Forms(frmName).AllowAdditions
            SF.Form.AllowEdits = Forms(frmName).AllowEdits
            SF.Form.AllowDeletions = Forms(frmName).AllowDeletions
           End If
        End If
      Next
   Else
      MsgBox "عفواً " & .UserName & "      " & vbCr & vbCr & "ليس لديك الصلاحية لهذاالاجراء", 0 + 16 + 1572864, "الصلاحيات"
      ContinueCode = False
      DoCmd.close acForm, frmName
   End If
End With
End Sub

للتعرف عند الضغط على زر امر اضافة او حذف او تعديل

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

قلبت راسك بالشرح اخوي ابو يوسف لكن متأكد انك توصلت لبعض ما اريده

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#4

http://www.gulfup.com/X1aky868okta

جرب هذا المرفق

إن شاء الله يكون ده المطلوب

ما هو المقابل

الذى كنت تريد

ان تكافىء به من يحل المشكلة لو المظلوب هو الموجود فى المرفق

قم بمراسلتى على الخاص

اوعلى الايميل

madapop11@yahoo.com

تم تعديل هذه المشاركة بواسطة madapop في 5 أبريل 2012 في 02:27

مبرمج نظم معلومات

#5
madapop كتب:

http://www.gulfup.com/X1aky868okta

جرب هذا المرفق

إن شاء الله يكون ده المطلوب

ما هو المقابل

الذى كنت تريد

ان تكافىء به من يحل المشكلة لو المظلوب هو الموجود فى المرفق

قم بمراسلتى على الخاص

اوعلى الايميل

madapop11@yahoo.com

اخي انت قمت بوضع الكود الذي عند الفتح لأزرار الامر عند التركيز

وهذا لايفي بالغرض فتلاحظ عند الاضافة تخرج رسالة من النظام لايمكن الذهاب الى السجل المحدد

وعند الحذف تخرج رسالة خطأ بأن الامر ليس متاح الأن

على العموم الكود الذي وضعه ابو يوسف قام بتأدية القرض نوعاً ما

اشكرك على مجهودك

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#6
kaser906 كتب:

استاذي ابو يوسف

الله يعطيك الف عافية

بالنسبة لسؤالك مالفائده من وضع كود التحقق من الصلاحيات عند الضغط على الازرار

لأن النموذج عند فتحه يكون مقفل والحقول غير ممكنة ومأمنة في نفس الوقت

وتكون الاضافة أو التعديل والحذف عن طريق ازرار أمر

فلو كان المستخدم مسموح له فتح النموذج ولم يكن لدية صلاحية لاضافة سجل وضغط على زر الامر اضافة

سيجد ان البرنامج لايستجيب معه ولا يعرف ما هو السبب فلو خرجت له رسالة عند الضغط بأنه ليست لديه صلاحيات

سيكون افضل

الكود الذي وضعته لي أتى بنتيجة ولكن المشكلة التي واجهتني معه

اني مضطر اني اضعه بكل النماذج بالبرنامج فلماذا لا استفيد من الكود بالوحده النمطية العامة ونستدعيه وقت ما نشاء

اضافة الى ذلك ان بعض النماذج ليست مرتبطه بالجداول مباشرة والحقول بها غير منظمه وهنا عند الضغط

على زر امر اضافة ستفتح الحقول غير المنظمة ويتم الحفظ عن طريق زر امر

ولن يتعرف نظام الصلاحيات على المسستخدم انه يريد اضافة سجل

وتعديل السجلات وحذفها يكون عن طريق زر امر بالنموذج الفرعي

اعتقد ان الموضوع لدي شائك جداَ ولن استطيع ايصال ما اريده بكل دقة

لكن خلاصة ما توصلت اليه اني بحاجة الى تعديل هذا الكود

Public Sub FrmAbilities(frmName As String)
Dim SF As Control, strsbfrm As String
With MyUser
   If .GetAbility(frmName, OpenForm) Then
      ContinueCode = True
      Forms(frmName).AllowAdditions = .GetAbility(frmName, Add)
      Forms(frmName).AllowEdits = .GetAbility(frmName, Edit)
      Forms(frmName).AllowDeletions = .GetAbility(frmName, del)
      For Each SF In Forms(frmName).Controls
        If SF.ControlType = acSubform Then
            strsbfrm = SF.SourceObject
           If Not IsNull(DLookup("FRM", "FRMS", "FRM = '" & strsbfrm & "'")) Then
            If .GetAbility(strsbfrm, OpenForm) Then
            SF.Form.AllowAdditions = .GetAbility(strsbfrm, Add)
            SF.Form.AllowEdits = .GetAbility(strsbfrm, Edit)
            SF.Form.AllowDeletions = .GetAbility(strsbfrm, del)
            Else
            SF.SourceObject = ""
            SF.Visible = False
            End If
           Else
            SF.Form.AllowAdditions = Forms(frmName).AllowAdditions
            SF.Form.AllowEdits = Forms(frmName).AllowEdits
            SF.Form.AllowDeletions = Forms(frmName).AllowDeletions
           End If
        End If
      Next
   Else
      MsgBox "عفواً " & .UserName & "      " & vbCr & vbCr & "ليس لديك الصلاحية لهذاالاجراء", 0 + 16 + 1572864, "الصلاحيات"
      ContinueCode = False
      DoCmd.close acForm, frmName
   End If
End With
End Sub

للتعرف عند الضغط على زر امر اضافة او حذف او تعديل

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

قلبت راسك بالشرح اخوي ابو يوسف لكن متأكد انك توصلت لبعض ما اريده

أخى الكريم

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

و لا تحتاج الى التحقق منها فى كل زر

و اذا كنت لا تريد استخدام الكود فى كل زر

يمكنك بدلا من ذلك ان تمكن الزر او العكس حسب الصلاحيات

جرب المرفق ( من وجهة نظرى هذا أفضل )

XorLocked.rar

تم تعديل هذه المشاركة بواسطة Abo_Yossof في 7 أبريل 2012 في 11:04

2

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#7
Abo_Yossof كتب:

أخى الكريم

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

و لا تحتاج الى التحقق منها فى كل زر

و اذا كنت لا تريد استخدام الكود فى كل زر

يمكنك بدلا من ذلك ان تمكن الزر او العكس حسب الصلاحيات

جرب المرفق ( من وجهة نظرى هذا أفضل )

مشكور استاذي ابو يوسف

هذه الطريقة ايضاممتازة وتؤدي للغرض المطلوب

بارك الله فيك

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#8

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

#9

هذا بسبب خطأ بالاكواد

يجب فحص جميع الاكواد قبل التحويل

عموما الخطأ هنا (MyUser.UserName)

Private Sub Form_Error(DataErr As Integer, Response As Integer)
      MsgBox "ÚÝæÇð " & MyUser.UserName & "      " & vbCr & vbCr & "áíÓ áÏíß ÇáÕáÇÍíÉ áåÐÇÇáÇÌÑÇÁ", 0 + 16 + 1572864, "ÇáÕáÇÍíÇÊ"

End Sub

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#10

بارك الله فيكم حوار ممتع وجهود طيب وتمت افادة كل المشاركين والذين اطلعو علي هذة المشاركة

#11

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

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…