Senhores, bom dia.
Seguindo as normas do fórum, informo que foram inúmeras pesquisas e, após baixar programas exemplo do Sr. João Paulo (Parcelas_2008 e Parcelas_2008_Retificado) e algumas alterações para a minha realidade, continuo a ter problemas na geração de parcelas com valores exatos.
Vou postar aqui e enviar um anexo com o módulo adaptado e o print da tela com dois exemplos de geração de parcelas: um com valores gerados corretamente e outro com valores divergentes.
Dentro do meu pouco conhecimento, alterei formato de valores e, infelizmente, não consegui o que queria e, da forma como está, não posso confiar no parcelamento.
Peço, por favor, sua análise e as possíveis causas do problema.
Desde já sou muito agradecido.
Antonio Aurélio
O print da tela com os resultados dos parcelamentos está anexo.
Muito obrigado.
Seguindo as normas do fórum, informo que foram inúmeras pesquisas e, após baixar programas exemplo do Sr. João Paulo (Parcelas_2008 e Parcelas_2008_Retificado) e algumas alterações para a minha realidade, continuo a ter problemas na geração de parcelas com valores exatos.
Vou postar aqui e enviar um anexo com o módulo adaptado e o print da tela com dois exemplos de geração de parcelas: um com valores gerados corretamente e outro com valores divergentes.
Dentro do meu pouco conhecimento, alterei formato de valores e, infelizmente, não consegui o que queria e, da forma como está, não posso confiar no parcelamento.
Peço, por favor, sua análise e as possíveis causas do problema.
Desde já sou muito agradecido.
Antonio Aurélio
- Código:
Private Sub cmdParcelasOs_Click()
Call Calc_parc
End Sub
Private Function Calc_parc()
Dim rs As DAO.Recordset, I As Byte
Dim rs1 As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("select * from tbl_parcelas_Vendas where Num_OR = " & Me.CódigoDoOrçamentoDeServiço & "")
Set rs1 = CurrentDb.OpenRecordset("select * from tbl_parcelas_Vendas where Num_OR = " & Me.CódigoDoOrçamentoDeServiço & " and quitada = -1")
If Not rs1.EOF Then
MsgBox "Este Serviço ja foi parcelada e contém pagamento 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 Serviço !!! " & Chr(10) & "" _
& "Deseja substituir pelos novos valores? ", vbYesNo + vbExclamation + vbDefaultButton1, "Parcelamento") = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete * from tbl_parcelas_Vendas where Num_OR = " & Me.CódigoDoOrçamentoDeServiço & ""
DoCmd.SetWarnings True
Else
Exit Function
End If
End If
'If Not Resto <= 0 Then
'Dim intX As Double
'Dim intY As Double
If Not Total_do_Pedido <= 0 Then
Dim intX As Double
Dim intY As Double
intX = Val(Me.Total_do_Pedido) / Val(Me.bytParcelas) ' valor de cada parcela
intY = Val(Me.Total_do_Pedido)
For I = 1 To Me.bytParcelas
With rs
.AddNew
!Num_OR = Me.CódigoDoOrçamentoDeServiço
!Num_parc = I & "/0"
!Num_parc = I & "/0" & Me.bytParcelas
!Data_venc = DateAdd("m", I - 1, Me.[DataDeTérmino] + [bytMeses])
' DateAdd("m", I - 1, Me.[DataDeTérmino] + [bytMeses]
intY = CCur(Format(intY, "0.00")) - CCur(Format(intX, "0.00"))
If I = Me.bytParcelas Then
intX = CCur(Format(intX, "0.00")) + CCur(Format(intY, "0.00"))
!Val_parc = intX
.Update
Else
!Val_parc = Me.v_parc
.Update
End If
End With
Next
Else
DoCmd.SetWarnings False
DoCmd.RunSQL "Delete * from tbl_parcelasVendas where Num_OR = " & Me.CódigoDoOrçamentoDeServiço & ""
DoCmd.SetWarnings True
End If
rs.Close
Set rs = Nothing
'MsgBox "Valores inseridos com sucesso!!!"
Me.SubFrm_Parcelas_Os.Requery
Me.SubFrm_Parcelas_Os.SetFocus
End Function
O print da tela com os resultados dos parcelamentos está anexo.
Muito obrigado.
- Anexos
- Tópico Máximo Access.docx
- Você não tem permissão para fazer download dos arquivos anexados.
- (127 Kb) Baixado 16 vez(es)