بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
1088 -
تاريخ الانضمام
-
تاريخ اخر زياره
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو طاهر اوفيسنا
-
الاقتطاع الشهري لمبالغ مالية بإستناء
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
المشكلة في الشطر الثاني اي يذهب الكود له عند الشهر 3 والشهر 7 لانه فما اقتطاع Inkhiratيساوي 1500.00 الملف اكسل المرفق يوضح استاذي العزيز موضوع الطلب هو تغيير detach بـ Nr Inkhirat.xlsx -
الاقتطاع الشهري لمبالغ مالية بإستناء
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
-
الاقتطاع الشهري لمبالغ مالية بإستناء
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
يبدو ان هناك مشكلة في الاستثناء myCriteria = "[Nr] < 6" مع العلم ان المشكل يظهر غير في الشرط If Month(Now()) = 3 Or Month(Now()) = 7 شهر 1 و 2 عادي اما شهر 3 و 7 ففيهما خاصية اقتطاع الانخراط 1500.00 يتم فيه ظهور الميساج ولم يتم اقتطاع المبلغ 20250123.rar -
الاقتطاع الشهري لمبالغ مالية بإستناء
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
وهو كذالك استاذ والان كيف يتم استنثاء في الشطر 2 من الكوذ If Month(Now()) = 3 Or Month(Now()) = 7 Then Dim rstE As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From tbl_Loans") myCriteria = "[detach]='موظف'" myCriteria = myCriteria & " Or [detach]='متعاقد كامل'" myCriteria = myCriteria & " Or [detach]='متعاقد جزئي'" myCriteria = myCriteria & " Or [detach]='عون نظافة'" 'myCriteria = "[Nr]= 1 " 'myCriteria = myCriteria & " Or [Nr]= 2 " 'myCriteria = myCriteria & " Or [Nr]= 3 " 'myCriteria = myCriteria & " Or [Nr]= 4 " 'myCriteria = myCriteria & " Or [Nr]= 5 " 'myCriteria = myCriteria & " Or [Nr]= 10 " Set rstE = CurrentDb.OpenRecordset("Select * From Employee Where " & myCriteria) rstE.MoveLast: rstE.MoveFirst Rc = rstE.RecordCount For i = 1 To Rc 'check if payment is already entered, if it is, then skip this Record rst.FindFirst "[Loan_Type]='Inkhirat' And [EmployeeID]=" & rstE!EmployeeID & " And [Payment_Month]=#" & Me.txtMonth & "#" ' TblOther مبلغ لانخراط المقرر في جدول If rst.NoMatch Then rst.AddNew a2 = 1 rst!EmployeeID = rstE!EmployeeID rst!Loan_ID = 0 rst!Payment_Month = DateSerial(Year(Me.txtMonth), Month(Me.txtMonth), 1) rst!Payment_Made = DLookup("Other_Value", "TblOther", "ID=1") 'to be used in Other loan Form rst!Loan_Type = "Inkhirat" rst!Nr = GetNumDetach(rst!EmployeeID) rst!Remarks = "إقتطاع من الراتب لإنخراط شهر " & Year(Me.txtMonth) & "/" & Month(Me.txtMonth) rst!annee = Year(Date) If rst!Loan_Type = "Inkhirat" Then rst!sadad = rst!Payment_Made If rst!sadad.Value = True Then rst!wada3 = "تم الإنخراط" Else rst!wada3 = "لم يتم الإنخراط" End If End If TheSum = TheSum + Nz(rst!Payment_Made, 0) rst.Update rstE.MoveNext Next i rstE.Close: Set rstE = Nothing End If TheSum = Format(TheSum, "#,##0.00") MsgBox " " & "تم توزيع الإقتطاعات" & vbLf & vbLf & "مجموع الإقتطاعات = " & TheSum, , "إقتطاعات شهر" & FrenchMonth(Month(Date)) & Year(Date) I_am_Done: Case vbNo MsgBox "لم يتم توزيع الإقتطاعات" End Select 'clean up rst.Close: Set rst = Nothing End If Exit Sub err_cmd_Pay_installments_Click: If Err.Number = 3021 Then 'No Records, ignore Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub علما انه شغال 100 بالمئة ولكن احبذ تغيير myCriteria = "[detach]='موظف'" myCriteria = myCriteria & " Or [detach]='متعاقد كامل'" myCriteria = myCriteria & " Or [detach]='متعاقد جزئي'" myCriteria = myCriteria & " Or [detach]='عون نظافة'" ب : Nr >= 6 -
السام عليكم اساتذتي الكرام ارجو أن لا أكون عبء عليكم بطلباتنا المتكررة والشبه يوميا لديا Nr "نوع الوظيفة"من 1 الى 16 عند الاقتطاع الشهري احبذ التعديل على الكود لكي يستثني Nr >=6 اي يضع له في جدول tbl_Loans Payment_Made= 0.00 علما انني وقعت في مشكلة عندما استبدلت myCriteria myCriteria = "[detach]='موظف'" myCriteria = myCriteria & " Or [detach]='عامل متعاقد توقيت كامل'" myCriteria = myCriteria & " Or [detach]='عامل متعاقد توقيت جزئي'" myCriteria = myCriteria & " Or [detach]='حارس متعاقد توقيت جزئي'" myCriteria = myCriteria & " Or [detach]='عون نظافه وتطهير'" بهذه لكي استنثي ماطلبت myCriteria = "[Nr]= 1 " myCriteria = myCriteria & " Or [Nr]= 2 " myCriteria = myCriteria & " Or [Nr]= 3 " myCriteria = myCriteria & " Or [Nr]= 4 " myCriteria = myCriteria & " Or [Nr]= 5 " والكود الي يقطتع Select Case MsgBox(" هل تريد أن يتم توزيع الإقتطاعات لشهر " & Me.txtMonth, vbYesNo + vbQuestion + vbDefaultButton1) Case vbYes For i = 1 To Rc rst.Edit If rst!Loan_Type = "Cridi" Then rst!Payment_Made = rst!Loan_Made: rst!sadad = rst!Loan_Made: rst!Loan_Remise = 0 If rst!Loan_Type = "Elec" Then rst!Payment_Made = rst!Loan_Made: rst!sadad = rst!Loan_Made: rst!Loan_Remise = 0 If rst!sadad.Value = True Then rst!wada3 = "تم التسديد" Else rst!wada3 = "لم يتم التسديد" End If TheSum = TheSum + Nz(rst!Payment_Made, 0) rst.Update rst.MoveNext Next i فأين يتم وضع الشرط جزاكم الله خيرا
-
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
أولا : شكرا استاذ ابو أحمد على ايجاد الحل الصحيح . ثانيا: الاستاذ القدير جعفر صحيح يتعب من اجل ايجاد الحلول المستعصية والشبه مستحيلة لمساعدة اخوانه في هذا المنتدى القيم نتمنى من الله سبحانه وتعالى ان يوفقه لما فيه خير لصالح العباد و البلاد العربية الاسلامية قاطبة. ثالثا : مع تحياتي للاستاذ FoKsh الذي بذلك قصارى جهده من اجل المساعدة -
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
لاحظ ملف الاكسل Mois12.xlsx -
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
لان النموذج مفتوح اغلق النموذج وافتح الاستعلام وسترى النتيجة استاذ ابو احمد حياك الله ان شاء الله انك طبت للشفاء يارب الاستعلام من تصميم الاستاذ القدير جعفر حياه الله ولكن الاستعلام يجلب النتيجة الصحيحة وهي باقي القروض الى غاية 2024/12/31 او 2024/12/01 النتيجة 1281.000.00 2025-01-22_07-29-09.rar -
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
استاذ الاستعلام Baghi3112 ظهرت لك النتيجة 54000.00 ام كيف ؟ -
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
كيف ؟ يأتي بمجموع الباقي Remaining_Cridi وهي النتيجة الصحيحة -
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
استاذي العزيز انا وضحت لك بالمنطق الحسابي تسلم قروض مالية على عدة اشهر لكي يسترجع مجموع القروض هي مجموع Loan_Made مبلغ الاشهر المقتطعة هي مجموع Payment_Made مجموع القروض - مبلغ القروض للاشهر المقتطعة = الباقي ولكن لماذا النتيجة خاطئة ؟؟؟ مقارنة بالاستعلام Baghi3112 -
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
-
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
صح كما اشرت استاذي ولكن لم افهم النتيجة تظهر خاطئة مانعرف ايحسب على تاريخ Payment_Month ام على تاريخ Auto_Date في الحدول tbl_Loans -
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
استاذ العزيز انظر لهذا الكود في الوحدة النمطية fAdd_Observations لربما يوضح لك بعض الاشياء المخفية ولربما انا لم اوضحها Function Sum_Remaining(p, ID_Emp As Integer, t As String, Loan_ID) As Currency 'On Error Resume Next 'P = DateSerial(Year(P), Month(P), 1) M = Month(p) Y = Year(p) If Loan_ID <> 0 Then If t = "Cridi" Then s = DSum("[Payment_Made]", "tbl_Loans", "[EmployeeID]=" & ID_Emp & " And month([Payment_Month])=" & M & " And Year([Payment_Month])=" & Y & " And [Loan_Type]='Cridi'") End If If t = "Elec" Then s = DSum("[Payment_Made]", "tbl_Loans", "[EmployeeID]=" & ID_Emp & " And month([Payment_Month])=" & M & " And Year([Payment_Month])=" & Y & " And [Loan_Type]='Elec'") End If Else If t = "Inkhirat" Then s = DSum("[Payment_Made]", "tbl_Loans", "[EmployeeID]=" & ID_Emp & " And month([Payment_Month])=" & M & " And Year([Payment_Month])=" & Y & " And [Loan_Type]='Inkhirat'") End If End If If IsNull(s) Then Sum_Remaining = 0 Else Sum_Remaining = s End If End Function -
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
ظهر المبلغ Total_Net_Value=54000.00 والصحيح 1,281,000.00 -
جلب قيمة مالية من استعلام بمعيار تاريخ
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
استاذي الكريم طريقة جلبه من الجدول لم تفلح معي ابدا يعني ما أعطاني النتيجة الصحيحة اطلاقا لهذا ذهبت الى الاكواد لانها اعطتني النتيجة الصحيحة الجدول هو tbl_Loans الحقل هو مجموع " Loan_Made ناقص Payment_Made" التاريخ هو Payment_Month ويكون الى غاية 2024/12/31 او 2024/12/01 حيث النتيجة تكون 1,281,000.00 الشرط Loan_ID اكبر من 0 -
السلام عليكم اساتدتي الكرام وجدت مشكلة في جلب قيمة مالية من استعلام بمعيار تاريخ اخر السنة كلما حاولت يكتب النتيجة 0 فورم FrmMada5il Me.txtYear = Year(Date) Me.txtMonthe = #12/31/2024# Me.Roming = Nz(DSum("[Remaining_Cridi]", "[Baghi3112]", "[Forms]![FrmMada5il]![Payment_Month1]=" & [txtMonthe]), 0) الاستعلام Baghi3112 SELECT tbl_Loans.Loan_ID, tbl_Loans.EmployeeID, Format([Payment_Month],"mmmm yyyy") AS Month_Year, [Forms]![FrmMada5il]![txtMonth] AS Payment_Month1, Sum_Remaining([Payment_Month1],[EmployeeID],"Cridi",Loan_ID) AS Cridi, Count_Remaining([Payment_Month1],[EmployeeID],[Loan_ID],"Cridi") AS Remaining_Cridi FROM tbl_Loans GROUP BY tbl_Loans.Loan_ID, tbl_Loans.EmployeeID, Format([Payment_Month],"mmmm yyyy"), [Forms]![FrmMada5il]![txtMonth] HAVING (((Format([Payment_Month],"mmmm yyyy"))=Format([Forms]![FrmMada5il]![txtMonth],"mmmm yyyy"))); ارجو المساعدة 20250121.rar
-
منح قرض مالي او أجهزة كهرومنزلية بشرط
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
شكرا استاذ AbuuAhmed ربي يشفيك ويعافيك -
منح قرض مالي او أجهزة كهرومنزلية بشرط
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
مبدئيا حسب مارأيت هذا هو المطلوب شكرا لك استاذ ابو أحمد نتمنى لك الشفاء العاجل وربي يسعدك وياريت بعد الشفاء توضح لي أين تم التعديل وشكرا -
منح قرض مالي او أجهزة كهرومنزلية بشرط
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
شكرا استاد ابو أحمد على الاهتمام هذه قيمتها تؤخذ من tbl_loans totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Loan_ID = 0"), 0) -
منح قرض مالي او أجهزة كهرومنزلية بشرط
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
01- في نظري يتم وضع هذا الكود قبل كود المنحة بدالة IF ولكن المشكلة اين يوضع وكيف يتم التنسيق بينهما ( اي لما ندخل من فورم القروض ينتقل الكود مباشرة الى القروض واذا دخلنا من فورم المنح يذهب مباشرة الى كود المنح) Select Case [Forms]![FrmCridi]![Etar] Case "القروض المالية" CridiID = [Forms]![FrmCridi]![Frm_sub].[Form]![CmdCridi] latestDate = Nz(DMax("Cridi_Date", "[Cridi]", "[EmployeeID] = " & ID & " AND [Cridi_ID] = " & CridiID), #1/1/1900#) Case "الأدوات الكهرومنزلية" ElecID = [Forms]![FrmElec]![Frm_sub].[Form]![CmdElec] latestDate = Nz(DMax("Elec_Date", "[ Elec]", "[EmployeeID] = " & ID & " AND [Elec_ID] = " & ElecID), #1/1/1900#) 02- وضع الاستاذ Barna هذا الشرط في الكود غير مفهوم ' جلب معرف المنحة من النموذج والتحقق من نوع الامتياز menhaID = 0 03 - اساتذتي الي يعرف كيف يتم التعديل رجاءا لايبخل علينا بالحل 04- اي استفسار غير مفهوم فالعبد لله موجود للتوضيح ماهو مطلوب -
منح قرض مالي او أجهزة كهرومنزلية بشرط
طاهر اوفيسنا replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
اساتذتي الكرام الكود يعمل بشكل جيد في فورم المنح واردت زيادة فورم القروض فكيف يتم التعديل وشكرا -
السلام عليكم اساتذة تعديلا على الموضوع الرابط هنا المطلوب التعديل على هذا الكود علما انه مخصص للمنح والتعويضات فقط والان اريد زيادة القروض والادوات الكهرومنزلية اي منح الاستفادة منهما يشرط ان يكون منخرطا بدفع مبلغ مالي قيمة 3000 Public Function CheckInkhirat(ByRef ID As Integer) As String On Error GoTo err_CheckInkhirat Dim yearNow As Integer, totalPaid As Currency Dim paymentMarch As Boolean, paymentJuly As Boolean Dim t As Integer, t1 As Integer Dim result_haj As Variant, latestDate As Variant Dim todayDate As Date, yearsDifference As Long Dim menhaID As Integer, eligibilityPeriod As Integer Dim menhaName As String, menhaType As String Dim message As String ' تحديد السنة الحالية If Month(Date) < 3 Then yearNow = Year(Date) - 1 t = 1 Else yearNow = Year(Date) t = 2 End If ' الحصول على تاريخ اليوم todayDate = Date ' إجمالي المبلغ المدفوع totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Loan_ID = 0"), 0) ' جلب معرف المنحة من النموذج والتحقق من نوع الامتياز menhaID = 0 Select Case [Forms]![FrmMenah]![Etar] Case "المنح العائلية" menhaID = [Forms]![FrmMenah]![Frm_sub].[Form]![CmdMenha] latestDate = Nz(DMax("Menha_Date", "[Mena7]", "[EmployeeID] = " & ID & " AND [Menha_ID] = " & menhaID), #1/1/1900#) Case "التعويضات الطبية" menhaID = [Forms]![FrmMenah]![Frm_sub].[Form]![cmdSanitaire] latestDate = Nz(DMax("[Sanitaire_Date]", "[Sanitaire]", _ "[EmployeeID] = " & [Forms]![FrmMenah]![EmployeeID] & _ " And [Nom_Beneficiaire] = '" & Replace([Forms]![FrmMenah]![Frm_sub].[Form]![Nom_Beneficiaire], "'", "''") & "'" & _ " And [Sanitaire_ID] = " & [Forms]![FrmMenah]![Frm_sub].[Form]![cmdSanitaire]), #1/1/1900#) End Select ' جلب اسم المنحة ونوعها وفترة الاستحقاق من الجدول menhaName = Nz(DLookup("Menha_Name", "tbl_MenhaRules", "Menha_ID = " & menhaID & " AND Menha_Type = '" & [Forms]![FrmMenah]![Etar] & "'"), "") menhaType = Nz(DLookup("Menha_Type", "tbl_MenhaRules", "Menha_ID = " & menhaID & " AND Menha_Type = '" & [Forms]![FrmMenah]![Etar] & "'"), "") eligibilityPeriod = Nz(DLookup("Eligibility_Period", "tbl_MenhaRules", "Menha_ID = " & menhaID & _ " AND Menha_Type = '" & menhaType & "' AND Eligibility_Period > 0"), 0) ' التحقق إذا كانت هناك فترة استحقاق مسجلة If eligibilityPeriod > 0 Then yearsDifference = DateDiff("yyyy", latestDate, todayDate) t1 = IIf(yearsDifference < eligibilityPeriod, 1, 2) End If ' التحقق من دفع المبلغ في مارس ويوليو paymentMarch = Nz(DLookup("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Month(Auto_Date) = 3"), 0) = 1500 paymentJuly = Nz(DLookup("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Month(Auto_Date) = 7"), 0) = 1500 ' بناء الرسالة بناءً على الشروط If totalPaid = 3000 Then message = "عزيزي المنخرط(ة)، يمكنك الاستفادة من " & menhaType & ": " & menhaName & "." If t = 1 Then message = message & " لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." ElseIf t = 2 Then message = message & " لأنك دفعت مبلغ الانخراط كاملاً." If paymentMarch And paymentJuly Then message = message & " على دفعتين." End If End If ' التحقق من آخر تاريخ لاستفادة المنحة If Not IsNull(latestDate) And eligibilityPeriod > 0 Then If eligibilityPeriod = 100 Then ' إذا كانت فترة الاستحقاق 100، تكون المنحة لمرة واحدة فقط message = "عزيزي المنخرط(ة)، لا يمكنك الاستفادة من " & menhaType & ": " & menhaName & "." & vbNewLine & _ "هذه المنحة يتم الاستفادة منها مرة واحدة فقط." ElseIf t1 = 1 Then ' في حالة الرفض بسبب فترة الاستحقاق message = "عزيزي المنخرط(ة)، لا يمكنك الاستفادة من " & menhaType & ": " & menhaName & "." & vbNewLine & _ "لقد استفدت من هذه المنحة بتاريخ: " & Format(latestDate, "dd/mm/yyyy") & "." & vbNewLine & _ "يجب الانتظار لمدة " & eligibilityPeriod & " سنة قبل الاستفادة مجددًا." Else ' في حالة القبول بعد انتهاء فترة الاستحقاق message = message & vbNewLine & "يمكنك الاستفادة من المنحة مجددًا." End If End If Else ' في حالة عدم دفع مبلغ الانخراط message = "عزيزي المنخرط(ة)، لا يمكنك الاستفادة من " & menhaType & ": " & menhaName & "." & vbNewLine & _ "لم تقم بدفع مبلغ الانخراط بالكامل المطلوب للاستفادة." End If ' إرجاع الرسالة CheckInkhirat = message Exit Function err_CheckInkhirat: MsgBox "خطأ رقم " & Err.Number & ": " & Err.Description, vbCritical, "خطأ" CheckInkhirat = "حدث خطأ أثناء التحقق من بيانات الانخراط." End Function BAR_A(2025).rar
-
السلام عليكم استاذ Barna معذرة . . . استاذي تم التعديل على المنح ونسيت القروص المالية والأدوات الكهرومنزلية قكيف يتم إضافة الكود الخاص بهم Select Case [Forms]![FrmCridi]![Etar] Case "القروض المالية" CridiID = [Forms]![FrmCridi]![Frm_sub].[Form]![CmdCridi] latestDate = Nz(DMax("Cridi_Date", "[Cridi]", "[EmployeeID] = " & ID & " AND [Cridi_ID] = " & CridiID), #1/1/1900#) Case "الأدوات الكهرومنزلية" ElecID = [Forms]![FrmElec]![Frm_sub].[Form]![CmdElec] latestDate = Nz(DMax("Elec_Date", "[Cridi]", "[EmployeeID] = " & ID & " AND [Elec_ID] = " & ElecID), #1/1/1900#) End Select الى الكود التالي المعدل من حضربك Public Function CheckInkhirat(ByRef ID As Integer) As String On Error GoTo err_CheckInkhirat Dim yearNow As Integer, totalPaid As Currency Dim paymentMarch As Boolean, paymentJuly As Boolean Dim t As Integer, t1 As Integer Dim result_haj As Variant, latestDate As Variant Dim todayDate As Date, yearsDifference As Long Dim menhaID As Integer, eligibilityPeriod As Integer Dim menhaName As String, menhaType As String Dim message As String ' تحديد السنة الحالية If Month(Date) < 3 Then yearNow = Year(Date) - 1 t = 1 Else yearNow = Year(Date) t = 2 End If ' الحصول على تاريخ اليوم todayDate = Date ' إجمالي المبلغ المدفوع totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Loan_ID = 0"), 0) ' جلب معرف المنحة من النموذج والتحقق من نوع الامتياز menhaID = 0 Select Case [Forms]![FrmMenah]![Etar] Case "المنح العائلية" menhaID = [Forms]![FrmMenah]![Frm_sub].[Form]![CmdMenha] latestDate = Nz(DMax("Menha_Date", "[Mena7]", "[EmployeeID] = " & ID & " AND [Menha_ID] = " & menhaID), #1/1/1900#) Case "التعويضات الطبية" menhaID = [Forms]![FrmMenah]![Frm_sub].[Form]![cmdSanitaire] latestDate = Nz(DMax("[Sanitaire_Date]", "[Sanitaire]", _ "[EmployeeID] = " & [Forms]![FrmMenah]![EmployeeID] & _ " And [Nom_Beneficiaire] = '" & Replace([Forms]![FrmMenah]![Frm_sub].[Form]![Nom_Beneficiaire], "'", "''") & "'" & _ " And [Sanitaire_ID] = " & [Forms]![FrmMenah]![Frm_sub].[Form]![cmdSanitaire]), #1/1/1900#) End Select ' جلب اسم المنحة ونوعها وفترة الاستحقاق من الجدول menhaName = Nz(DLookup("Menha_Name", "tbl_MenhaRules", "Menha_ID = " & menhaID & " AND Menha_Type = '" & [Forms]![FrmMenah]![Etar] & "'"), "") menhaType = Nz(DLookup("Menha_Type", "tbl_MenhaRules", "Menha_ID = " & menhaID & " AND Menha_Type = '" & [Forms]![FrmMenah]![Etar] & "'"), "") eligibilityPeriod = Nz(DLookup("Eligibility_Period", "tbl_MenhaRules", "Menha_ID = " & menhaID & _ " AND Menha_Type = '" & menhaType & "' AND Eligibility_Period > 0"), 0) ' التحقق إذا كانت هناك فترة استحقاق مسجلة If eligibilityPeriod > 0 Then yearsDifference = DateDiff("yyyy", latestDate, todayDate) t1 = IIf(yearsDifference < eligibilityPeriod, 1, 2) End If ' التحقق من دفع المبلغ في مارس ويوليو paymentMarch = Nz(DLookup("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Month(Auto_Date) = 3"), 0) = 1500 paymentJuly = Nz(DLookup("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Month(Auto_Date) = 7"), 0) = 1500 ' بناء الرسالة بناءً على الشروط If totalPaid = 3000 Then message = "عزيزي المنخرط(ة)، يمكنك الاستفادة من " & menhaType & ": " & menhaName & "." If t = 1 Then message = message & " لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." ElseIf t = 2 Then message = message & " لأنك دفعت مبلغ الانخراط كاملاً." If paymentMarch And paymentJuly Then message = message & " على دفعتين." End If End If ' التحقق من آخر تاريخ لاستفادة المنحة If Not IsNull(latestDate) And eligibilityPeriod > 0 Then If eligibilityPeriod = 100 Then ' إذا كانت فترة الاستحقاق 100، تكون المنحة لمرة واحدة فقط message = "عزيزي المنخرط(ة)، لا يمكنك الاستفادة من " & menhaType & ": " & menhaName & "." & vbNewLine & _ "هذه المنحة يتم الاستفادة منها مرة واحدة فقط." ElseIf t1 = 1 Then ' في حالة الرفض بسبب فترة الاستحقاق message = "عزيزي المنخرط(ة)، لا يمكنك الاستفادة من " & menhaType & ": " & menhaName & "." & vbNewLine & _ "لقد استفدت من هذه المنحة بتاريخ: " & Format(latestDate, "dd/mm/yyyy") & "." & vbNewLine & _ "يجب الانتظار لمدة " & eligibilityPeriod & " سنة قبل الاستفادة مجددًا." Else ' في حالة القبول بعد انتهاء فترة الاستحقاق message = message & vbNewLine & "يمكنك الاستفادة من المنحة مجددًا." End If End If Else ' في حالة عدم دفع مبلغ الانخراط message = "عزيزي المنخرط(ة)، لا يمكنك الاستفادة من " & menhaType & ": " & menhaName & "." & vbNewLine & _ "لم تقم بدفع مبلغ الانخراط بالكامل المطلوب للاستفادة." End If ' إرجاع الرسالة CheckInkhirat = message Exit Function err_CheckInkhirat: MsgBox "خطأ رقم " & Err.Number & ": " & Err.Description, vbCritical, "خطأ" CheckInkhirat = "حدث خطأ أثناء التحقق من بيانات الانخراط." End Function علمان انه فورم مستقل لوحده ومافيه حتى شرط الا ان يكون دافع مبلغ الانخراط كما في المنح والتعويضات BAR_A(2025).rar