Private Sub cmd_Pay_installments_Click()
On Error GoTo err_cmd_Pay_installments_Click

Dim rst As DAO.Recordset
Dim TotalLoanDeductions As Double
Dim TotalSubscriptionDeductions As Double
Dim TotalDeductions As Double
  
  '     0       
 TotalLoanDeductions = 0
 TotalSubscriptionDeductions = 0
 TotalDeductions = 0
 
 '  :  
Set rst = CurrentDb.OpenRecordset("SELECT * FROM tbl_Loans WHERE [Payment_Month]=CDATE('" & Me.txtMonth & "')")
If rst.RecordCount = 0 Then
    MsgBox "    " & Format(Me.txtMonth, "mmmm yyyy"), vbInformation
    Exit Sub
End If

If Len(rst!Payment_Made & "") = 0 And Not IsNull(rst!Loan_Made) Then
    Select Case MsgBox("       " & Me.txtMonth, vbYesNo + vbQuestion + vbDefaultButton1)
        Case vbYes
            rst.MoveFirst
            Do Until rst.EOF
                rst.Edit
                If rst!Loan_Type = "Cridi" Or rst!Loan_Type = "Elec" Then
                    rst!Payment_Made = Nz(rst!Loan_Made, 0)
                    rst!sadad = rst!Payment_Made
                    rst!Loan_Remise = 0
                    rst!wada3 = IIf(rst!sadad > 0, "  ", " ")
                    TotalLoanDeductions = TotalLoanDeductions + Nz(rst!Payment_Made, 0) '   

                End If
        
                
                rst.Update
                
                 rst.MoveNext

            Loop

            rst.Close


    End Select

End If

'  :  
If Month(Now()) = 3 Or Month(Now()) = 7 Then
    Dim db As DAO.Database
    Dim rstE As DAO.Recordset
    Dim myCriteria As String, PaymentCheck As Variant
    Dim SelectedYear As Integer
    Dim PaymentValue As Variant

    Set db = CurrentDb
    SelectedYear = Year(Now())
    myCriteria = "[detach] IN ('', '   ', '   ', '   ', '  ')"
    Set rstE = db.OpenRecordset("SELECT * FROM Employee WHERE " & myCriteria, dbOpenDynaset)

    If Not rstE.EOF Then rstE.MoveFirst
    
    Do Until rstE.EOF
        If Month(Now()) = 3 Then
            PaymentCheck = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID=" & rstE!EmployeeID & _
                " AND [Payment_Month] BETWEEN #" & DateSerial(SelectedYear, 1, 1) & "# AND #" & DateSerial(SelectedYear, 2, 28) & "# AND [wada3]=' '"), 0)
        Else
            PaymentCheck = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID=" & rstE!EmployeeID & _
                " AND [Payment_Month] BETWEEN #" & DateSerial(SelectedYear, 4, 1) & "# AND #" & DateSerial(SelectedYear, 6, 30) & "# AND [wada3]=' '"), 0)
        End If

        If PaymentCheck < 3000 Then
            Set rst = db.OpenRecordset("tbl_Loans", dbOpenDynaset)
            rst.FindFirst "[Loan_Type]='Inkhirat' AND [EmployeeID]=" & rstE!EmployeeID & " AND [Payment_Month]=#" & Format(CDate(Me.txtMonth), "mm/dd/yyyy") & "#"
            
            If rst.NoMatch Then
                PaymentValue = Nz(DLookup("Other_Value", "TblOther", "ID=1"), 0)
                
                If Not IsNull(rstE!EmployeeID) And PaymentValue > 0 Then
                    rst.AddNew
                    rst!EmployeeID = rstE!EmployeeID
                    rst!Payment_Month = DateSerial(Year(Now()), Month(Now()), 1)
                    rst!Payment_Made = PaymentValue
                    rst!Loan_Type = "Inkhirat"
                    rst!sadad = rst!Payment_Made
                    rst!wada3 = IIf(rst!sadad > 0, "  ", " ")
                    rst!annee = Year(Now())
                    rst.Update

                    TotalSubscriptionDeductions = TotalSubscriptionDeductions + Nz(rst!Payment_Made, 0) '  

                End If
            End If
            rst.Close
        End If
        rstE.MoveNext
    Loop

    rstE.Close
    db.Close
End If

'   
TotalDeductions = TotalLoanDeductions + TotalSubscriptionDeductions
'' 
 Remaining1 = Nz(DSum("[Remaining]", "[qry_rptD1]"), 0)
'   
MsgBox "   " & vbCrLf & _
       "  : " & Format(TotalLoanDeductions, "#,##0.00") & " " & vbCrLf & _
       "  : " & Format(TotalSubscriptionDeductions, "#,##0.00") & " " & vbCrLf & _
       "  : " & Format(TotalDeductions, "#,##0.00") & " ", _
       "  : " & Format(Remaining1, "#,##0.00") & " ", _
       vbInformation, "  " & FrenchMonth(Month(Now())) & " " & Year(Now())

Exit Sub

err_cmd_Pay_installments_Click:
If Err.Number = 3021 Then
    Resume Next
Else
    MsgBox " : " & Err.Number & vbCrLf & ": " & Err.Description, vbCritical, "   "
End If
End Sub
