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

Barna

الخبراء
  • Posts

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

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

  • Days Won

    24

كل منشورات العضو Barna

  1. إن بالذات لا تجوز الصدقة عليك ... عارف ليس لانك ما شاء الله تبارك الله غني ونحن من تجب عليهم الصدقة والله اخي محمد ليس المشكلة في المثال ولكن لا اجيد الشرح مثلكم وخاصة المثال يتطلب خطوات لشرحهما بطريقة يسهل فهمها لذلك أردت أن ابحث عن الشروحات الموجودة في المنتدى عن الموضوع ليسهل على إدراجها ... لان وقتي لا يسمح لي بالشرح ... بارك الله فيك وفيك اخي بشمهندس محمد
  2. ليس المشكلة يا دكتور في المثال بقدر ما تكون المشكلة في الشرح ... احاول بحث النقاشات التي تمت لكل طريقة من الطرق الثلاثة لادراجها هنا إن لم يسبقني لذلك أحد الاعضاء.الكرام .... لان شرح كل طريقة تحتاج وقت لذلك .... بارك الله فيك
  3. هناك طرق عديدة في المنتدى للتفعيل ... الله يعينك ابحث عنها .... اما طريقتي لتفعيل برامجي .... يقوم المستخدم باختيار احد هذه الطرق الثلاث ..... وهذه الطرق الثلاث واكثر هي اساسا موجودة في المنتدى العامر بالابداع ....
  4. ابحث في الفورم الجديد عن ::: Forms!تسجيل الحسابات!اسم العميل وغير عبارة تسجيل الحسابات باسم النموذج الجديد
  5. طيب .... قم بنقل الكود كما في الصورة من مربع القائمة الخاصة بالنوع الى مربع القائمة الخاص بنوعية القرابة ثم انسخ الفانك بدل الفانك الموجود لديك ,,,,,, Public Function CheckInkhirat(ByRef ID As Integer) As String On Error GoTo err_CheckInkhirat Dim yearNow As Integer Dim totalPaid As Currency Dim totalPaidLastYear As Currency Dim paymentMarch As Boolean Dim paymentJuly As Boolean Dim t, t2 As Integer Dim result_haj As Variant Dim latestDate As Variant Dim todayDate As Date Dim yearsDifference As Long t1 = 2 ' تحديد السنة 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) If [Forms]![FrmMenah]![Etar] = "المنح العائلية" Then 'التحقق من منحة الحج والنظارات الطبية result_haj = DLookup("[Menha_Date]", "[Mena7]", "[EmployeeID] =" & ID & " And [Menha_ID] =" & [Forms]![FrmMenah]![Frm_sub].[Form]![CmdMenha] & " And [Menha_ID] =11 ") ElseIf [Forms]![FrmMenah]![Etar] = "التعويضات الطبية" And [Forms]![FrmMenah]![Frm_sub].[Form]![cmdSanitaire] = 2 Then If IsNull(DMax("[Sanitaire_Date]", "[Sanitaire]", "[EmployeeID] =" & [Forms]![FrmMenah]![EmployeeID] & " And [Nom_Beneficiaire] ='" & [Forms]![FrmMenah]![Frm_sub].[Form]![Nom_Beneficiaire] & "'")) Then latestDate = #10/1/2000# yearsDifference = DateDiff("yyyy", latestDate, todayDate) Else latestDate = DMax("[Sanitaire_Date]", "[Sanitaire]", "[EmployeeID] =" & [Forms]![FrmMenah]![EmployeeID] & " And [Nom_Beneficiaire] ='" & [Forms]![FrmMenah]![Frm_sub].[Form]![Nom_Beneficiaire] & "'") yearsDifference = DateDiff("yyyy", latestDate, todayDate) End If If yearsDifference < 2 Then result_haj = Null t1 = 1 Else result_haj = Null t1 = 2 End If Else result_haj = Null 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 t1 = 2 And t = 2 And totalPaid = 3000 And paymentMarch = False And paymentJuly = False And IsNull(result_haj) Then CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." ElseIf t1 = 2 And t = 2 And totalPaid = 3000 And paymentMarch = True And paymentJuly = True And IsNull(result_haj) Then CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." ElseIf t1 = 2 And t = 1 And totalPaid = 3000 Then CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من الامتيازات لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." 'التحقق من رسائل الحج ElseIf t1 = 2 And t = 1 And totalPaid = 3000 And Not IsNull(result_haj) Then CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من الامتيازات لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." & vbNewLine & "ولكن قد استفت من منحة الحج لعام" & vbNewLine & result_haj ElseIf t1 = 2 And t = 2 And totalPaid = 3000 And paymentMarch = False And paymentJuly = False And Not IsNull(result_haj) Then CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." & vbNewLine & "ولكن قد استفت من منحة الحج لعام" & vbNewLine & result_haj ElseIf t1 = 2 And t = 2 And totalPaid = 3000 And paymentMarch = True And paymentJuly = True And Not IsNull(result_haj) Then CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." & vbNewLine & "ولكن قد استفت من منحة الحج لعام" & vbNewLine & result_haj 'التحقق من رسائل النظارات الطبية ElseIf t1 = 1 And t = 1 And totalPaid = 3000 And IsNull(result_haj) Then CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من الامتيازات لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." & vbNewLine & "ولكن قد استفت من منحةالنظارات الطبية بتاريخ" & vbNewLine & latestDate ElseIf t1 = 1 And t = 2 And totalPaid = 3000 And paymentMarch = False And paymentJuly = False And IsNull(result_haj) Then CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." & vbNewLine & "ولكن قد استفت من منحةالنظارات الطبية بتاريخ" & vbNewLine & latestDate ElseIf t1 = 1 And t = 2 And totalPaid = 3000 And paymentMarch = True And paymentJuly = True And IsNull(result_haj) Then CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." & vbNewLine & "ولكن قد استفت من منحةالنظارات الطبية بتاريخ" & vbNewLine & latestDate Else CheckInkhirat = "عزيزي المنخرط(ة)، لا يمكنك الاستفادة من الامتيازات لأنك لم تدفع مبلغ الانخراط." End If Exit Function err_CheckInkhirat: MsgBox "خطأ رقم " & Err.Number & ": " & Err.Description, vbCritical, "خطأ" CheckInkhirat = "حدث خطأ أثناء التحقق من بيانات الانخراط." End Function
  6. يعني تريد المستخدم يملأ جميع البيانات وعند الوصول للاسم تخرج له الرسالة ؟؟؟
  7. طيب اذا كنت مصر على طريقتك .... هل هذا هو المطلوب
  8. ولكن لاحظ اخي @كريمو2 ان المستخدم هو من يقوم بكتابة الاسم .... فلو اخطأ في مسافة او حرف الكمبيوتر ذكي لدرجة الغباء ... يعني يقبلها دون تردد .... فلعلاج ذلك المفترض يتم اختيار الاسم من خلال قائمة منسدلة وليس تسجيل المستخدم ,,, اليس كذلك ؟؟؟؟؟؟
  9. اشكرك اخي @ناقل على الاسئلة التي شرحت لنا ما يريده اخانا @كريمو2 هل هذا التصور المطلوب ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  10. اخي الكريم ... شروطك اختلفت عن السابق .... لذا وجب عليك فتح موضوع جديد مع التعريض بهذا الموضوع ... تجد الإجابة مني أو أحد الزملاء في المنتدى
  11. تفضل ...... Public Function CheckInkhirat(ByRef ID As Integer) As String On Error GoTo err_CheckInkhirat Dim yearNow As Integer Dim totalPaid As Currency Dim totalPaidLastYear As Currency Dim paymentMarch As Boolean Dim paymentJuly As Boolean Dim t As Integer Dim result_haj As Variant ' تحديد السنة If Month(Date) < 3 Then yearNow = Year(Date) - 1 t = 1 Else yearNow = Year(Date) t = 2 End If 'إجمالي المبلغ المدفوع totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Loan_ID = 0"), 0) If [Forms]![FrmMenah]![Etar] = "المنح العائلية" Then 'التحقق من منحة الحج result_haj = DLookup("[Menha_Date]", "[Mena7]", "[EmployeeID] =" & ID & " And [Menha_ID] =" & [Forms]![FrmMenah]![Frm_sub].[Form]![CmdMenha] & " And [Menha_ID] =11 ") Else result_haj = Null 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 t = 2 And totalPaid = 3000 And paymentMarch = False And paymentJuly = False And IsNull(result_haj) Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." ElseIf t = 2 And totalPaid = 3000 And paymentMarch = True And paymentJuly = True And IsNull(result_haj) Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." ElseIf t = 1 And totalPaid = 3000 Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من الامتيازات لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." 'التحقق من رسائل الحج ElseIf t = 1 And totalPaid = 3000 And Not IsNull(result_haj) Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من الامتيازات لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." & vbNewLine & "ولكن قد استفت من منحة الحج لعام" & vbNewLine & result_haj ElseIf t = 2 And totalPaid = 3000 And paymentMarch = False And paymentJuly = False And Not IsNull(result_haj) Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." & vbNewLine & "ولكن قد استفت من منحة الحج لعام" & vbNewLine & result_haj ElseIf t = 2 And totalPaid = 3000 And paymentMarch = True And paymentJuly = True And Not IsNull(result_haj) Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." & vbNewLine & "ولكن قد استفت من منحة الحج لعام" & vbNewLine & result_haj Else CheckInkhirat = "عزيزي العامل، لا يمكنك الاستفادة من الامتيازات لأنك لم تدفع مبلغ الانخراط." End If Exit Function err_CheckInkhirat: MsgBox "خطأ رقم " & Err.Number & ": " & Err.Description, vbCritical, "خطأ" CheckInkhirat = "حدث خطأ أثناء التحقق من بيانات الانخراط." End Function
  12. طبعا منحة الحج كغيرها من المنح يشترط انخراط العامل ودفع المستحق ولكن الفرق بينها وبين المنح الأخرى أنها تعطى مرة واحدة خلال عمل العامل أليس كذلك ...
  13. هههه .... كلام سليم واصبحنا لا نعرف اي التعديلات المناسبة لك أخي @يونس محمد الخطابي
  14. جرب هذا ... Private Sub CmdMenha_AfterUpdate() Dim result As String Dim userResponse As VbMsgBoxResult Dim emp As Integer Dim f As Integer emp = EmployeeID ' استدعاء الدالة للتحقق من الانخراط result = CheckInkhirat(emp) ' عرض النتيجة في رسالة userResponse = MsgBox(result, vbOKOnly + vbInformation, "نتيجة التحقق") ' التحقق من منحة الحج f = DCount("year(Menha_Date)", "Mena7", "EmployeeID=" & Me.EmployeeID) If f >= 1 And Me.Menha_ID = "11" Then MsgBox "هذا المنخرط (ة) استفاد بمنحة الحج لسنة :" & "" & Year(Me.Menha_Date), vbExclamation, "تنبيه" Me.Undo Exit Sub End If ' التحقق من استحقاق الامتياز قبل المتابعة If result Like "*كاملا*" Then ' طلب تأكيد تثبيت المنحة If MsgBox("هل تريد تثبيت تاريخ المنحة؟", vbYesNo + vbQuestion, "تأكيد") = vbYes Then ' إذا وافق المستخدم، يتم تثبيت التاريخ وإكمال العملية Me.AwardMonth = Date Me.Menha_Value = CmdMenha.Column(2) Me.Obsérvation = Nom_Menha Me.annee = Year(Me.AwardMonth) Else ' إذا رفض المستخدم، يتم التراجع عن أي تغييرات Me.Undo End If Else ' إذا لم يتم استيفاء شروط الانخراط، لا يمكن تثبيت المنحة MsgBox "لا يمكنك تثبيت المنحة لأن شروط الانخراط غير مستوفاة.", vbExclamation, "تنبيه" Me.Undo End If End Sub
  15. هل بحث في المنتدى عن الأمثلة الكثيرة عن هذا الموضوع
  16. وعليكم السلام ورحمة الله وبركاته .... هل هذا ما تريد ؟؟؟؟
  17. يبدو انك مكرر اسم الدالة لديك ابحث عنها ( اما تغير اسمائها او تحذف القديم الذي لا تحتاجه )
  18. مشاركة من الحبيب @ابوخليل انظر اخي @يونس محمد الخطابي المرفق التالي يقوم بمهام : استخلاص رمز ( الحرفين الاول من الاسم الاول - الاسم الثاني - الاسم الثالث - بالاضافة للحرفين الاول للعنوان ) وذلك عن طريق الاستعلام GeneratedCodeQuery SELECT TAAA.Idd3, TAAA.Asm, TAAA.Anoan, Left(Trim(Mid([asm],1,InStr(Trim([asm]),' ')-1)),2) & IIf(InStr(Trim([asm]),' ')>0,Left(Trim(Mid([asm],InStr(Trim([asm]),' ')+1,InStr(InStr(Trim([asm]),' ')+1,Trim([asm]),' ')-InStr(Trim([asm]),' '))),2),'') & IIf(InStr(InStr(Trim([asm]),' ')+1,Trim([asm]),' ')>0,Left(Trim(Mid([asm],InStr(InStr(Trim([asm]),' ')+1,Trim([asm]),' ')+1)),2),'') & Left(Trim([Anoan]),2) AS Rmz FROM TAAA WHERE (((Left(Trim(Mid([asm],1,InStr(Trim([asm]),' ')-1)),2) & IIf(InStr(Trim([asm]),' ')>0,Left(Trim(Mid([asm],InStr(Trim([asm]),' ')+1,InStr(InStr(Trim([asm]),' ')+1,Trim([asm]),' ')-InStr(Trim([asm]),' '))),2),'') & IIf(InStr(InStr(Trim([asm]),' ')+1,Trim([asm]),' ')>0,Left(Trim(Mid([asm],InStr(InStr(Trim([asm]),' ')+1,Trim([asm]),' ')+1)),2),'') & Left(Trim([Anoan]),2)) Like "*" & [forms]![NAAA1]![DDD] & "*")); جرب عملية البحث الان بعد اضافة عناوين ..... واعلمنا بالنتيجة Barna_5.accdb
  19. هلا بالبشمهندس محمد ..... هل يستأذن اخي الغالي صاحب الدار .... بل يسلم ويدخل الدار بارك الله فيه جرب هذا الكود اخي @كريمو2 Public Function CheckInkhirat(ByRef ID As Integer) As String On Error GoTo err_CheckInkhirat Dim yearNow As Integer Dim totalPaid As Currency Dim totalPaidLastYear As Currency Dim paymentMarch As Boolean Dim paymentJuly As Boolean Dim t As Integer ' تحديد السنة If Month(Date) < 3 Then yearNow = Year(Date) - 1 t = 1 Else yearNow = Year(Date) t = 2 End If 'إجمالي المبلغ المدفوع totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Loan_ID = 0"), 0) ' التحقق من دفع المبلغ في مارس ويوليو للسنة الحالية 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 t = 2 And totalPaid = 3000 And paymentMarch = False And paymentJuly = False Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." ElseIf t = 2 And totalPaid = 3000 And paymentMarch = True And paymentJuly = True Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." ElseIf t = 1 And totalPaid = 3000 Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من الامتيازات لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." Else CheckInkhirat = "عزيزي العامل، لا يمكنك الاستفادة من الامتيازات لأنك لم تدفع مبلغ الانخراط." End If Exit Function err_CheckInkhirat: MsgBox "خطأ رقم " & Err.Number & ": " & Err.Description, vbCritical, "خطأ" CheckInkhirat = "حدث خطأ أثناء التحقق من بيانات الانخراط." End Function
  20. Public Function CheckInkhirat(ByRef ID As Integer) As String On Error GoTo err_CheckInkhirat Dim yearNow As Integer Dim totalPaid As Currency Dim paymentMarch As Boolean Dim paymentJuly As Boolean ' تحديد السنة الحالية 'yearNow = Year(Date) If Month(Date) < 3 Then yearNow = Year(Date) - 1 Else yearNow = Year(Date) End If ' إجمالي المبلغ المدفوع ' totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow), 0) totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Loan_ID = 0"), 0) ' التحقق من دفع المبلغ في مارس ويوليو 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 And paymentMarch = False And paymentJuly = False Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." ElseIf totalPaid = 3000 And paymentMarch = True And paymentJuly = True Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." Else CheckInkhirat = "عزيزي العامل، لا يمكنك الاستفادة من الامتيازات لأنك لم تدفع مبلغ الانخراط." End If Exit Function err_CheckInkhirat: MsgBox "خطأ رقم " & Err.Number & ": " & Err.Description, vbCritical, "خطأ" CheckInkhirat = "حدث خطأ أثناء التحقق من بيانات الانخراط." End Function Public Function GetOther(ByRef ID As Integer) As Boolean On Error GoTo err_GetOther Dim rst As DAO.Recordset Dim MySQL As String Dim sadad As Boolean Dim anne As Integer If Month(Date) < 3 Then anne = Year(Date) - 1 Else anne = Year(Date) End If sadad = IIf(DLookup("sadad", "tbl_Loans", "EmployeeID =" & ID & " And Year(tbl_Loans.Auto_Date) =" & anne) = True, True, False) If sadad = False Then Choix = 0: Exit Function Choix = 1 If Month(Date) <= 3 Then: GetOther = True: Exit Function MySQL = "" MySQL = "SELECT tbl_Loans.Auto_ID, tbl_Loans.EmployeeID, tbl_Loans.Auto_Date, tbl_Loans.Loan_Type, tbl_Loans.Remarks, Year(tbl_Loans.Auto_Date) AS Dats" MySQL = MySQL & " FROM tbl_Loans" MySQL = MySQL & " WHERE tbl_Loans.Loan_Type ='Inkhirat'" MySQL = MySQL & " And tbl_Loans.EmployeeID =" & ID MySQL = MySQL & " And Year(tbl_Loans.Auto_Date) =" & Year(Date) MySQL = MySQL & " ORDER BY tbl_Loans.Auto_Date" 'Debug.Print MySQL Set rst = CurrentDb.OpenRecordset(MySQL) rst.MoveLast: rst.MoveFirst Rec = rst.RecordCount If Month(Date) = 7 Then tot = DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " And Year(Auto_Date) = " & Year(Date)) = 3000 If Not tot Then GetOther = False: Exit Function End If If Rec = 0 Then GetOther = False Else GetOther = True End If 'Debug.Print Adding rst.Close: Set rst = Nothing Exit Function err_GetOther: If Err.Number = 3021 Then 'Or Err.Number = 3061 Then 'ignor, No Record Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function
  21. جرب هذا واعلمنا Public Function CheckInkhirat(ByRef ID As Integer) As String On Error GoTo err_CheckInkhirat Dim yearNow As Integer Dim yearNext As Integer Dim totalPaid As Currency Dim paymentMarch As Boolean Dim paymentJuly As Boolean ' تحديد السنة الحالية والسنة التالية yearNow = Year(Date) yearNext = yearNow + 1 ' إجمالي المبلغ المدفوع في السنة الحالية وحتى مارس من السنة التالية totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", _ "EmployeeID = " & ID & _ " AND ((Year(Auto_Date) = " & yearNow & ") " & _ " OR (Year(Auto_Date) = " & yearNext & " AND Month(Auto_Date) <= 3))" & _ " AND Loan_ID = 0"), 0) ' التحقق من دفع المبلغ في مارس ويوليو من السنة الحالية 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 And paymentMarch = False And paymentJuly = False Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." ElseIf totalPaid = 3000 And paymentMarch = True And paymentJuly = True Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." Else CheckInkhirat = "عزيزي العامل، لا يمكنك الاستفادة من الامتيازات لأنك لم تدفع مبلغ الانخراط." End If Exit Function err_CheckInkhirat: MsgBox "خطأ رقم " & Err.Number & ": " & Err.Description, vbCritical, "خطأ" CheckInkhirat = "حدث خطأ أثناء التحقق من بيانات الانخراط." End Function
  22. ممكن تدخل بعض تلك الاحتمالات في الجدول .... وتوضح ماذا تريد بالضبط من نتائج
  23. تفضل ...................... Public Function CheckInkhirat(ByRef ID As Integer) As String On Error GoTo err_CheckInkhirat Dim yearNow As Integer Dim totalPaid As Currency Dim paymentMarch As Boolean Dim paymentJuly As Boolean ' تحديد السنة الحالية yearNow = Year(Date) ' إجمالي المبلغ المدفوع ' totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow), 0) totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Loan_ID = 0"), 0) ' التحقق من دفع المبلغ في مارس ويوليو 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 And paymentMarch = False And paymentJuly = False Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." ElseIf totalPaid = 3000 And paymentMarch = True And paymentJuly = True Then CheckInkhirat = "عزيزي العامل، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." Else CheckInkhirat = "عزيزي العامل، لا يمكنك الاستفادة من الامتيازات لأنك لم تدفع مبلغ الانخراط." End If Exit Function err_CheckInkhirat: MsgBox "خطأ رقم " & Err.Number & ": " & Err.Description, vbCritical, "خطأ" CheckInkhirat = "حدث خطأ أثناء التحقق من بيانات الانخراط." End Function
×
×
  • اضف...

Important Information