Private Sub cmd_Pay_installments_Click()
On Error GoTo err_cmd_Pay_installments_Click

Dim rst As DAO.Recordset
Dim rstE As DAO.Recordset
Dim Rc As Integer, TheSum As Double
Dim myCriteria As String

Set rst = CurrentDb.OpenRecordset("SELECT * FROM tbl_Loans WHERE [Payment_Month]=#" & Format(Me.txtMonth, "mm/dd/yyyy") & "#")

If rst.EOF Then
    MsgBox " لا توجد إقتطاعات لشهر " & Format(Me.txtMonth, "mmmm yyyy"), vbInformation
    rst.Close: Set rst = Nothing
    Exit Sub
End If

With rst
    If IsNull(!Payment_Made) And Not IsNull(!Loan_Made) Then
        If MsgBox("هل تريد توزيع الإقتطاعات لشهر " & Format(Me.txtMonth, "mmmm yyyy") & "؟", vbYesNo + vbQuestion) = vbYes Then
            
            Do Until .EOF
                .Edit
                If !Nr >= 6 Then
                    !Payment_Made = 0
                ElseIf !Loan_Type = "Cridi" Or !Loan_Type = "Elec" Then
                    !Payment_Made = !Loan_Made
                    !sadad = !Loan_Made
                    !Loan_Remise = 0
                End If
                
                !wada3 = IIf(Nz(!sadad, 0) <> 0, "تم التسديد", "لم يتم التسديد")
                TheSum = TheSum + Nz(!Payment_Made, 0)
                .Update
                .MoveNext
            Loop
            
            ' اقتطاع الانخراط في مارس ويوليو
            If Month(Me.txtMonth) = 3 Or Month(Me.txtMonth) = 7 Then
                myCriteria = "([detach] IN ('موظف', 'عامل متعاقد توقيت كامل', 'عامل متعاقد توقيت جزئي', 'حارس متعاقد توقيت جزئي', 'عون نظافه وتطهير'))"
                Set rstE = CurrentDb.OpenRecordset("SELECT * FROM Employee WHERE " & myCriteria)

                If Not rstE.EOF Then
                    Do Until rstE.EOF
                        If DCount("*", "tbl_Loans", "EmployeeID=" & rstE!EmployeeID & " AND [Loan_Type]='Inkhirat' AND [Payment_Month]=#" & Me.txtMonth & "#") = 0 Then
                            .AddNew
                            !EmployeeID = rstE!EmployeeID
                            !Loan_ID = 0
                            !Payment_Month = Me.txtMonth
                            !Payment_Made = DLookup("Other_Value", "TblOther", "ID=1")
                            !Loan_Type = "Inkhirat"
                            !Nr = GetNumDetach(rstE!EmployeeID)
                            !Remarks = "إقتطاع من الراتب لإنخراط شهر " & Format(Me.txtMonth, "yyyy/mm")
                            !sadad = !Payment_Made
                            !wada3 = "تم الإنخراط"
                            .Update
                            TheSum = TheSum + Nz(!Payment_Made, 0)
                        End If
                        rstE.MoveNext
                    Loop
                End If
                rstE.Close: Set rstE = Nothing
            End If

            ' عرض المجموع النهائي
            MsgBox "تم توزيع الإقتطاعات بنجاح." & vbCrLf & "المجموع: " & Format(TheSum, "#,##0.00"), vbInformation, "إقتطاعات شهر " & Format(Me.txtMonth, "mmmm yyyy")
        End If
    End If
End With

rst.Close: Set rst = Nothing
Exit Sub

err_cmd_Pay_installments_Click:
    MsgBox "خطأ رقم: " & Err.Number & vbCrLf & Err.Description, vbCritical
    If Not rst Is Nothing Then rst.Close: Set rst = Nothing
    If Not rstE Is Nothing Then rstE.Close: Set rstE = Nothing
End Sub