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

صلاحيات المستخدمين


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

السلام عليكم ورحمة الله تعالى وبركاته

لقد بحثت كثيرا عن طرق إضافة صلاحيات المستخدمين

حتى وجدت هذا الفديو

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

وهل يوجد ما هو أفضل منها 

بارك الله فيكم وفي علمكم ورفع قدرك في الدارين

School certificate .rar

رابط هذا التعليق
شارك

1 hour ago, صالح حمادي said:

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

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

مما أعجبني في الفديو

هو االسهولة والفعالية 

وواجهة معبرة جدا

 

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله تعالى وبركاته

قمت بإضافة function

ووضعت الكود التالي داخله

Public Function UserAccess(FormName As String) As Boolean
If (Nz(DLookup("COpen", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FormName & "'"), False)) Then
AllowAdditions = False
AllowEdits = False
AllowDeletions = False

ElseIf (Nz(DLookup("CEdit", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FormName & "'"), False)) Then
AllowAdditions = False

ElseIf (Nz(DLookup("Cdelete", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FormName & "'"), False)) Then
AllowDeletions = False

ElseIf (Nz(DLookup("CAdd", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FormName & "'"), False)) Then
AllowAdditions = False
End If


End Function

 في النموذج login

قمت بإضافة المتغير 

TempVars("EmployeeType") = rs!ID.Value

لحفظ رقم المستخدم الذي سجل الدخول

وبدأت التجريب مع النموذجUser 

في الحدث عند الفتح وضعت الكود التالي

Private Sub Form_Load()

On Error Resume Next
    If Globals.UserAccess(Me.Name) = False Then
        MsgBox "لا تملك الصلاحيات اللازمة، يرجى الإتصال بالمسؤول", _
               vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "دخول غير مصرح !"
        DoCmd.Close acForm, Me.Name
        Else
        DoCmd.GoToRecord , , acNewRec
    End If
End Sub

المشكلة عندي أن رسالة

لا تملك الصلاحيات اللازمة يرجى الاتصال بالمسؤول

دائما ما تظهر سواء كان يملك الصلاحية أو لم يملكها

tblHastAccess.PNG.9b38669552d3f16c7af068df976658ed.PNG

لا أدري أين أخطأت في الكود

رابط على موقع الخليج

https://gulfsup.com/a94cb4x

School certificate.rar

تم تعديل بواسطه بوعبد الله محفوظ
رابط هذا التعليق
شارك

29 minutes ago, ابوخليل said:

بو عبدالله 

يبدوا ان برنامج الضغط  الذي تستخدمه  غير مكتمل

لايمكن فك المرفقات

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

أعدت رفع الملف 

مع رابط على موقع الخليج

رابط هذا التعليق
شارك

قمت بتعديل الكود في الدالة إلى

Public Function UserAccess(FrmName As Form) As Boolean
 If (Nz(DLookup("COpen", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FrmName.Name & "'"), False)) = False Then
FrmName.AllowAdditions = False
FrmName.AllowEdits = False
FrmName.AllowDeletions = False

ElseIf (Nz(DLookup("CEdit", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FrmName.Name & "'"), False)) = False Then
FrmName.AllowEdits = False

ElseIf (Nz(DLookup("Cdelete", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FrmName.Name & "'"), False)) = False Then
FrmName.AllowDeletions = False

ElseIf (Nz(DLookup("CAdd", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FrmName.Name & "'"), False)) = False Then
FrmName.AllowAdditions = False
End If

وفي الحدث "Load" للنموذج المعني وضعت الكود التالي 

Private Sub Form_Load()

On Error Resume Next
Call Globals.UserAccess(Me)
End Sub

الكود يشتغل تمام

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

مع رسالة تبين له ذلك

 

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله تعالى وبركاته

قمت بإضافة حقل جديد في الجدول tblHasAccess 

وأسميته CView 

tblHastAccess1.PNG.758cee344626aa7dd48acf6b3c0c8674.PNG

أما الكود في الدالة أصبح كالتالي

Public Function UserAccess(FrmName As Form) As Boolean

 If (Nz(DLookup("COpen", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FrmName.Name & "'"), False)) = False Then
        MsgBox "لا تملك الصلاحيات اللازمة، يرجى الإتصال بالمسؤول", _
        vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "دخول غير مصرح !"
        DoCmd.Close acForm, FrmName.Name

ElseIf (Nz(DLookup("CView", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FrmName.Name & "'"), False)) = False Then
        FrmName.AllowAdditions = False
        FrmName.AllowEdits = False
        FrmName.AllowDeletions = False

ElseIf (Nz(DLookup("CEdit", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FrmName.Name & "'"), False)) = False Then
        FrmName.AllowEdits = False

ElseIf (Nz(DLookup("Cdelete", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FrmName.Name & "'"), False)) = False Then
        FrmName.AllowDeletions = False

ElseIf (Nz(DLookup("CAdd", "tblHasAccess", "UserID=" & TempVars("EmployeeType") & " AND FormName='" & FrmName.Name & "'"), False)) = False Then
        FrmName.AllowAdditions = False
    
End If
End Function

 أنا الآن بصدد إضافة نموذج ذو واجهة بسيطة

يمكن من خلاله توزيع مختلف الصلاحيات على المستخدمين

أي أفكار

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information