اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

السلام عليكم الأخوة الكرام

المثال المرفق ينقصه تعديل واحد علي نظام صلاحياته

وهو أنه إذا تم فتح القاعدة بطريقة عادية أي بدون الدخول المباشر من نموذج الدخول المخصص لذلك (دخول مجهول الهوية) ألا يتم فتح النماذج وتعطي رسالة تنبيه طبقا للنظام المطبق في المثال

 

صلاحيات.rar

قام بنشر (معدل)

للرفع

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

تم تعديل بواسطه السبيل1
قام بنشر

اخي في ما سبق قمت بتكرار نفس السؤال

و اعطيتك الإجابة بأن الكود الذي لديك يقوم بنفس الوظيفة

يجب ان يكون سؤالك اكثر وضوع ماهي المشكلة التي تواجهك ؟

ماهي الطريقة الغير مشروعة التي اكتشفتها ؟

في رأي بأنه يوجد لديك كود قوي 

قام بنشر

السلام عليكم أستاذ @د.كاف يار 

الإجابة تكون إجابة عندما تحقق الغرض منها أما بخصوص مزيد من التوضيح للواضح 

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

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

قام بنشر (معدل)

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

If DCount("ID_User", "users", "deCode([UName],'User')='" & Trim(user) & "'") = 0 Or _
Me.AllowDeletions = False Then _
MsgBox " لا تملك صلاحيات لذلك ", vbCritical: Exit Sub

يجب ان يتحقق الشرط 

- وجود اسم مستخدم صحيح

- وجود صلاحية

تم تعديل بواسطه د.كاف يار
  • Like 1
قام بنشر

استاذ @د.كاف يار شكرا لحضرتك

هل يمكن وضعها داخل المويول Permissions ليتم استدعائها داخل كل نموذج أو تقرير من خلال الأمر الموجود أصلاد لتطبيق الصلاحيةو هو Call FunModulePermissions

قام بنشر

ملاحظة هامة @د.كاف يار

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

قام بنشر

تفضل هذا التعديل

سيتم اغلاق النموذج او التقرير في حال عدم استيفاء شروط الدخول

If Me.AllowDeletions = False And _
    DCount("ID_User", "users", "deCode([UName],'User')='" & Trim(user) & "'") = 0 Then
    MsgBox " لا تملك الصلاحيات للدخول ", vbCritical + vbMsgBoxRight, "تنبيه"
    DoCmd.Close
    Exit Sub
End If

 

قام بنشر (معدل)

استاذ @د.كاف يار

هل يمكن وضعه كما هو في المديول Permissions بحقق نفس الغرض عند استدعائه داخل النماذج والتقارير من خلال الكود Call FunModulePermissions فقط

ملاحظة هامة أخري أستاذ @د.كاف يار

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

تم تعديل بواسطه السبيل1
قام بنشر
6 ساعات مضت, السبيل1 said:

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

If Me.AllowDeletions = False And _
    DCount("ID", "Tbusers", "deCode([UName],'User')='" & Trim(User) & "'") = 0 Then
    MsgBox " لا تملك الصلاحيات للدخول ", vbCritical + vbMsgBoxRight, "تنبيه"
    DoCmd.CancelEvent
    Exit Sub
    DoCmd.Close

تفضل... هذا بخصوص الكود

بالنسبة للسؤال الثاني فلم اجرب بعد سأحاول ان شاءالله

قام بنشر (معدل)

أستاذ @سامي الحداد شكر علي مداخلتك الإيجابية

أين أضع الكود الذي ساهمت به هل داخل المويول Permissions (حسب ما أرغب) أم في حدث عند الفتح لأي نموذج للتجربة ؟

تم تعديل بواسطه السبيل1
  • أفضل إجابة
قام بنشر

تفضل اخي الكريم

جرب التعديل ووافنا بالنتيجة

Function FunModulePermissions()
On Error GoTo Macro1_Err

    With CodeContextObject
                  If DCount("ID", "Tbusers", "deCode([UName],'User')='" & Trim(User) & "'") = 0 Then
                  MsgBox " لا تملك الصلاحيات للدخول ", vbCritical + vbMsgBoxRight, "تنبيه"
                  DoCmd.CancelEvent
                  
      If CurrentProject.AllForms("FrmMain").IsLoaded = False Then
        .AllowAdditions = False
        .AllowEdits = False
        .AllowDeletions = False
      Else
        If (Forms!Frmmain!UAddData = False) Then
            .AllowAdditions = False
        End If
        If (Forms!Frmmain!UEditData = False) Then
            .AllowEdits = False
        End If
        If (Forms!Frmmain!UDeleteData = False) Then
            .AllowDeletions = False

           
        End If
      End If
   End If

Macro1_Exit:
    Exit Function

Macro1_Err:
    MsgBox Error$
    Resume Macro1_Exit
End With
End Function

 

  • Thanks 1
قام بنشر
3 ساعات مضت, سامي الحداد said:

جرب التعديل ووافنا بالنتيجة

عذرا أخي الاستاذ @سامي الحداد للعودة مرة أخري

كل النماذج تعمل تمام إلا نموذج واحد وهو أهمهم النموذج FrmMain هو الوحيد الذي لا يعمل معه كود الصلاحية وضعته تقريبا في كل احداث دون جدوي

قام بنشر

اخي الاستاذ @سامي الحداد 

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

مشكورا اتمني منك استكمال هذا العمل بالاطلاع علي المطلوب فيه هنا لعلك تكون سببا في تنفيذه 

 

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information