-
Posts
143 -
تاريخ الانضمام
-
تاريخ اخر زياره
السمعه بالموقع
20 Excellentعن العضو بوعبد الله محفوظ
البيانات الشخصية
-
Gender (Ar)
ذكر
-
Job Title
StruMIS Manager
-
البلد
Algeria
اخر الزوار
1,394 زياره للملف الشخصي
-
السلام عليكم ورحمة الله تعالى وبركاته لمراجعة بداية الموضوع يرجى زيارة هذه الصفحة 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 آآآآآآآآآآآآآآآآآآآآسف على الإطالة بارك الله فيكم وفي علمكم
-
السلام عليكم ورحمة الله تعالى وبركاته قمت بإضافة حقل جديد في الجدول 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 أنا الآن بصدد إضافة نموذج ذو واجهة بسيطة يمكن من خلاله توزيع مختلف الصلاحيات على المستخدمين أي أفكار
-
قمت بتعديل الكود في الدالة إلى 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 الكود يشتغل تمام اريد كود يمنع المستخدم من الدخول إلى نموذج معين إذا لم تكن لديه الصلاحية اللازمة مع رسالة تبين له ذلك
-
أعدت رفع الملف مع رابط على موقع الخليج
-
السلام عليكم ورحمة الله تعالى وبركاته قمت بإضافة 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
-
لقد فعلت أخونا الكريم لكن للأسف ليست نفس الفكرة التي في الفديو مما أعجبني في الفديو هو االسهولة والفعالية وواجهة معبرة جدا
-
السلام عليكم ورحمة الله تعالى وبركاته لقد بحثت كثيرا عن طرق إضافة صلاحيات المستخدمين حتى وجدت هذا الفديو هل من أحد يستطيع تطبيق هذه الفكرة وهل يوجد ما هو أفضل منها بارك الله فيكم وفي علمكم ورفع قدرك في الدارين School certificate .rar
-
مشكوووووووووور أخونا الكريم صادفتني مشكلة في وضعية 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 تمت العملية بنجاح
-
كيف يمكنني عمل فلتر للنموذج الفرعي
بوعبد الله محفوظ replied to بوعبد الله محفوظ's topic in قسم الأكسيس Access
مشكور أخونا الكريم جعفر من قبل لم أكن أكتب شيء في الجدول الفرعي لماذا لم يتم التحديث مباشرة -
كيف يمكنني عمل فلتر للنموذج الفرعي
بوعبد الله محفوظ replied to بوعبد الله محفوظ's topic in قسم الأكسيس Access
لقد تحالفوا ضدي Forms!frmPaint!subRealisation.Requery Forms!frmPaint!subRealisation!txtProject.Requery لم ينفع أخي الكريم عندما غيرت إلى أسماء الحقول Project;Repères;LaDate الجدول الفرعي لا يأخذ أي قيمة -
كيف يمكنني عمل فلتر للنموذج الفرعي
بوعبد الله محفوظ replied to بوعبد الله محفوظ's topic in قسم الأكسيس Access
جربتها أخي جعفر لكن لم تنجح معي لا أدري أين الخلل -
كيف يمكنني عمل فلتر للنموذج الفرعي
بوعبد الله محفوظ replied to بوعبد الله محفوظ's topic in قسم الأكسيس Access
-
السلام عليكم ورحمة الله تعالى وبركاته أريد عمل فلتر للنموذج الفرعي من خلال مربع تحرير وسرد 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