Bom dia Mestres,
Tenho um gerado de parcelas que estou tentando adaptar a meu projeto, porém quando mando calcular as parcelas ele o faz, mas duplica as parcelas as vezes mais 1000 vezes, como se o Loop não parasse, segue abaixo o código:
Tenho um gerado de parcelas que estou tentando adaptar a meu projeto, porém quando mando calcular as parcelas ele o faz, mas duplica as parcelas as vezes mais 1000 vezes, como se o Loop não parasse, segue abaixo o código:
- Código:
Private Function Calc_parc()
On Error Resume Next
Dim rs As DAO.Recordset
Dim rs1 As DAO.Recordset
Dim Rs2 As DAO.Recordset
Dim I As Byte, X As Integer, StrParc As String
Set rs = CurrentDb.OpenRecordset("select * from tblPagamentosParcelas where CodPagto = " & Me.CodPagto & "")
Set rs1 = CurrentDb.OpenRecordset("select * from tblPagamentosParcelas where CodPagto = " & Me.CodPagto & " and quitada = -1")
Set Rs2 = CurrentDb.OpenRecordset("SELECT CodPrazoPagtoDet, CodPrazoPagto, NDias FROM tblPrazoPagamentoDet WHERE CodPrazoPagto = " & Me.cboCodPrazoPagto.Column(0) & ";")
If Not rs1.EOF Then
MsgBox "Este Pagamento ja foi parcelado e cont?m pagamentos efetuados. " & Chr(10) & "" _
& "N?o ser? possivel refazer parcelamento !!!", vbCritical
Set rs1 = Nothing
Exit Function
End If
If Not rs.EOF Then
If MsgBox("J? existe um parcelamento para este Pagamento !!! " & Chr(10) & "" _
& "Deseja substituir pelos novos valores? ", vbYesNo + vbExclamation + vbDefaultButton1, "Parcelamento") = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete * from tblPagamentosParcelas where CodPagto = " & Me.CodPagto & ""
DoCmd.SetWarnings True
Else
Exit Function
End If
End If
If Not ValorParcial <= 0 Then
Do While Not Rs2.EOF
For I = 1 To Me.N?DeParcelas
With rs
.AddNew
!CodPagto = Me.CodPagto
!N?DeParcelas = I & "/"
!N?DeParcelas = I & "/" & Me.N?DeParcelas
!ValorDasParcelas = Me.ValorDasParcelas
If Me.chkEntrada = False Then
!DataDoVencto = DateAdd("d", Rs2!NDias, Format(Me.DataFaturamento, "dd/mm/yyyy"))
Else
!DataDoVencto = DateAdd("m", I - 1, (Me.DataFaturamento))
Me.cboCodPrazoPagto = "30 Dias"
End If
!DataPrevPagto = !DataDoVencto
.Update
End With
Rs2.MoveNext
Next I
Loop
Else
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete * from tblPagamentosParcelas where CodPagto = " & Me.CodPagto & ""
DoCmd.SetWarnings True
End If
rs.Close
Set rs = Nothing
Me.frmPagamentosParcelas.Requery
MsgBox "Valores inseridos com sucesso!!!"
Me.Fornecedor.SetFocus
Exit_Calc_Parc:
Exit Function
Err_Calc_Parc:
MsgBox Err.Description
Resume Exit_Calc_Parc
Me.Fornecedor.SetFocus
End Function