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

بوعبد الله محفوظ

03 عضو مميز
  • Posts

    143
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

20 Excellent

عن العضو بوعبد الله محفوظ

البيانات الشخصية

  • Gender (Ar)
    ذكر
  • Job Title
    StruMIS Manager
  • البلد
    Algeria

اخر الزوار

1,276 زياره للملف الشخصي
  1. السلام عليكم ورحمة الله تعالى وبركاته لمراجعة بداية الموضوع يرجى زيارة هذه الصفحة https://www.officena.net/ib/topic/79975-صلاحيات-المستخدمين/ في الموديل "Globals" قمت بالتعريفات التالية Public VUserID As Integer 'من اجل حفظ رقم تعريف المستخدم Public VFirstLast As String 'من أجل حفظ قيمة الاسم واللقب Public VFirst As String 'من أجل حفظ قيمة الاسم Public VLast As String 'من أجل حفظ قيمة اللقب Public VUserName As String 'من أجل حفظ اسم المستخدم بعد ذلك أنشئت نموج جديد"AdminNaviForm" حيث عند اختيار أي مستخدم والذهاب إلى الأذونات يتم عرض بيانات ذلك المستخدم مع الصلاحيات التي يمتلكها وفي الحدث عند النقر في زر الأذونات وضعت الكود التالي Private Sub NavigationButton9_Click() [Forms]![AdminNaviForm]![AdminNavSubform]![txtID] = VUserID [Forms]![AdminNaviForm]![AdminNavSubform]![txtFirstLast] = VFirstLast [Forms]![AdminNaviForm]![AdminNavSubform]![txtUserName] = VUserName [Forms]![AdminNaviForm]![AdminNavSubform]!chkOpenUser = DLookup("COpen", "tblHasAccess", "[UserID]= " & [Forms]![AdminNaviForm]![AdminNavSubform]![txtID]) [Forms]![AdminNaviForm]![AdminNavSubform]!chkCViewUser = DLookup("CView", "tblHasAccess", "[UserID]= " & [Forms]![AdminNaviForm]![AdminNavSubform]![txtID]) [Forms]![AdminNaviForm]![AdminNavSubform]!chkEditUser = DLookup("CEdit", "tblHasAccess", "[UserID]= " & [Forms]![AdminNaviForm]![AdminNavSubform]![txtID]) [Forms]![AdminNaviForm]![AdminNavSubform]!chkCdeleteUser = DLookup("Cdelete", "tblHasAccess", "[UserID]= " & [Forms]![AdminNaviForm]![AdminNavSubform]![txtID]) [Forms]![AdminNaviForm]![AdminNavSubform]!chkCAddUser = DLookup("CAdd", "tblHasAccess", "[UserID]= " & [Forms]![AdminNaviForm]![AdminNavSubform]![txtID]) End Sub وفي نموذج المستخدمين وفي الحدث الحالي وضعت الكود التالي Private Sub Form_Current() On Error Resume Next VUserID = Me.ManagementID VFirst = Me.txtFirstName VLast = Me.txtLastName VFirstLast = VFirst & " " & VLast VUserName = Me.txtUserName End Sub وعند الضغط على زر حفظ في نموذج الأذونات وضعت الكود التالي Private Sub btnSave_Click() msaved = True Dim rs As Recordset Dim criteria As String Set rs = CurrentDb.OpenRecordset("tblHasAccess", dbOpenSnapshot, dbReadOnly) criteria = "[UserID]=" & [txtID] _ & "And [FormName]='" & [txtfrmUser] & "'" rs.FindFirst criteria If rs.NoMatch = False Then CurrentDb.Execute "UPDATE tblHasAccess " _ & "SET COpen = '" & [chkOpenUser] & " ' , CEdit = '" & [chkEditUser] & "'," _ & "CView ='" & [chkCViewUser] & " ' ,Cdelete ='" & [chkCdeleteUser] & "'," _ & "CAdd ='" & [chkCAddUser] & "'" _ & "WHERE tblHasAccess.UserID =" & [txtID] _ & "and tblHasAccess.FormName ='" & [txtfrmUser] & "' ;" Else CurrentDb.Execute " INSERT INTO tblHasAccess " _ & "(UserID,FormName, COpen, CView, CEdit, Cdelete, CAdd) VALUES " _ & "('" & [txtID] & "', '" & [txtfrmUser] & "','" & [chkOpenUser] & " ','" & [chkCViewUser] & "','" & [chkEditUser] & "','" & [chkCdeleteUser] & "','" & [chkCAddUser] & "');" 'MsgBox "تم الحفظ بنجاح", vbMsgBoxRight + vbMsgBoxRtlReading, "رسالة تأكيد" End If End Sub هذا من أجل نموج واحد فقط و لو اتبعت هذا النمط فان الكود سيكون كبيرا جدا هل من أفكار من أجل كود فعال وتجنب التكرار رابط الملف على موقع الخليج https://gulfsup.com/c5d091x آآآآآآآآآآآآآآآآآآآآسف على الإطالة بارك الله فيكم وفي علمكم
  2. السلام عليكم ورحمة الله تعالى وبركاته قمت بإضافة حقل جديد في الجدول tblHasAccess وأسميته CView أما الكود في الدالة أصبح كالتالي 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 أنا الآن بصدد إضافة نموذج ذو واجهة بسيطة يمكن من خلاله توزيع مختلف الصلاحيات على المستخدمين أي أفكار
  3. قمت بتعديل الكود في الدالة إلى 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 الكود يشتغل تمام اريد كود يمنع المستخدم من الدخول إلى نموذج معين إذا لم تكن لديه الصلاحية اللازمة مع رسالة تبين له ذلك
  4. السلام عليكم ورحمة الله تعالى وبركاته قمت بإضافة 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 المشكلة عندي أن رسالة لا تملك الصلاحيات اللازمة يرجى الاتصال بالمسؤول دائما ما تظهر سواء كان يملك الصلاحية أو لم يملكها لا أدري أين أخطأت في الكود رابط على موقع الخليج https://gulfsup.com/a94cb4x School certificate.rar
  5. لقد فعلت أخونا الكريم لكن للأسف ليست نفس الفكرة التي في الفديو مما أعجبني في الفديو هو االسهولة والفعالية وواجهة معبرة جدا
  6. السلام عليكم ورحمة الله تعالى وبركاته لقد بحثت كثيرا عن طرق إضافة صلاحيات المستخدمين حتى وجدت هذا الفديو هل من أحد يستطيع تطبيق هذه الفكرة وهل يوجد ما هو أفضل منها بارك الله فيكم وفي علمكم ورفع قدرك في الدارين School certificate .rar
  7. السلام عليكم ورحمة الله تعالى وبركاته عندي نموذج يقوم بعملية البحث كل شيء يشتغل تمام إلا رقم التسجيل ونوعه رقمي و تاريخ الميلاد ونوعه تاريخ دائما ما تأتني الرسالة التالية هل من حل لهذه المشكلة بارك الله فيكم وفي علمكم School certificate2003.rar
  8. مشكوووووووووور أخونا الكريم صادفتني مشكلة في وضعية Print Preview تأتني هذه الرسالة هل من حل بارك الله فيك آآآآآآسف على الازعاج قمت بتغيير الكود من الحدث Private Sub Report_Load() Me.RecordSource = Form_Print.StudentInfoSubForm.Form.RecordSource End Sub إلى Private Sub Report_Open(Cancel As Integer) Me.RecordSource = Form_Print.StudentInfoSubForm.Form.RecordSource End Sub تمت العملية بنجاح
  9. السلام عليكم ورحمة الله تعالى وبركاته عندي نموذج يحتوي على نموذج فرعي أريد طباعة المعلومات التي تظهر في النموذج الفرعي فقط بارك الله فيكم وفي علمكم School certificate 2003.rar
  10. مشكور أخونا الكريم جعفر من قبل لم أكن أكتب شيء في الجدول الفرعي لماذا لم يتم التحديث مباشرة
  11. لقد تحالفوا ضدي Forms!frmPaint!subRealisation.Requery Forms!frmPaint!subRealisation!txtProject.Requery لم ينفع أخي الكريم عندما غيرت إلى أسماء الحقول Project;Repères;LaDate الجدول الفرعي لا يأخذ أي قيمة
  12. مشكووووووووووور أخونا جعفر على اهتمامك لكن أنا أريد سجل واحد فقط وعند حذف الكود تظهر جميع السجلات
  13. السلام عليكم ورحمة الله تعالى وبركاته أريد عمل فلتر للنموذج الفرعي من خلال مربع تحرير وسرد txtProject في النموذج الرئيسي الفكرة كالتالي أريد أن يظهر في النموذج الفرعي فقط السجل الذي يتم تقيده في النموذج الرئيسي لذا قمت بالتالي وأضفت الكود ليقوم بعمل الفلتر Private Sub txtProject_AfterUpdate() If IsNull(Me.txtProject) Then Me.subRealisation.Form.Filter = "" Me.subRealisation.Form.FilterOn = False Else Me.subRealisation.Form.Filter = "[Project]= '" & Me.txtProject & "'" Me.subRealisation.Form.FilterOn = True End If End Sub لكن تأتني الرسالة التالية هل من حل بارك الله فيكم وأين أخطأت بالضبط في الكود بارك الله في علمكم وزادكم من فضله Test 2003.zip
×
×
  • اضف...

Important Information