اذهب الي المحتوي
أوفيسنا

تعديل بعدم صلاحية فتح النماذج


السبيل1
إذهب إلى أفضل إجابة Solved by سامي الحداد,

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

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

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

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

 

صلاحيات.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