MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


4 participantes

    [Resolvido]Parcelas com divisão exata

    avatar
    Antonio Aurélio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 54
    Registrado : 29/01/2014

    parcelas - [Resolvido]Parcelas com divisão exata Empty [Resolvido]Parcelas com divisão exata

    Mensagem  Antonio Aurélio 28/3/2019, 12:10

    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

    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
    parcelas - [Resolvido]Parcelas com divisão exata AttachmentTópico Máximo Access.docx
    Você não tem permissão para fazer download dos arquivos anexados.
    (127 Kb) Baixado 16 vez(es)
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    parcelas - [Resolvido]Parcelas com divisão exata Empty Re: [Resolvido]Parcelas com divisão exata

    Mensagem  Celso Roberto 28/3/2019, 22:07

    Olá..

    Acredito que o problema pode estar na função Val() Usada em sua expressão.

    Esta função não reconhece a virgula como separador decimal e ela também só retorna números inteiros.
    Pesquise sobre esta função.

    Faça um teste, altere esta parte:

    intX = Val(Me.Total_do_Pedido) / Val(Me.bytParcelas) ' valor de cada parcela
    intY = Val(Me.Total_do_Pedido)


    Por

    intX = Me.Total_do_Pedido / Me.bytParcelas ' valor de cada parcela
    intY = Me.Total_do_Pedido

    Se não for isso, anexe exemplo com dados significativos para analizar mos


    Aguardamos


    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3492
    Registrado : 13/12/2016

    parcelas - [Resolvido]Parcelas com divisão exata Empty Re: [Resolvido]Parcelas com divisão exata

    Mensagem  Alexandre Fim 28/3/2019, 22:37

    Olá Antonio Aurélio,

    Por gentileza, poste aqui seu banco de dados (somente as partes envolvidas) para que os colaboradores do fórum possa te ajudar.

    Grato.

    []'s
    tauron
    tauron
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1416
    Registrado : 07/12/2011

    parcelas - [Resolvido]Parcelas com divisão exata Empty Re: [Resolvido]Parcelas com divisão exata

    Mensagem  tauron 29/3/2019, 09:40

    Veja este exemplo, talvez ajude.
    Anexos
    parcelas - [Resolvido]Parcelas com divisão exata AttachmentEdijovem.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (36 Kb) Baixado 38 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3492
    Registrado : 13/12/2016

    parcelas - [Resolvido]Parcelas com divisão exata Empty Re: [Resolvido]Parcelas com divisão exata

    Mensagem  Alexandre Fim 29/3/2019, 11:19

    Antonio bom dia,

    Provavelmente o erro está na formatação dos valores.

    Tente formatar assim:

    Código:


    intX = Format(CDbl(Me.Total_do_Pedido) / Int(Me.bytParcelas), "#,#00.0#") ' valor de cada parcela


    Boa sorte
    avatar
    Antonio Aurélio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 54
    Registrado : 29/01/2014

    parcelas - [Resolvido]Parcelas com divisão exata Empty Parcelas com divisão exata

    Mensagem  Antonio Aurélio 29/3/2019, 11:31

    Senhores, bom dia.

    Agradeço a todos pelas orientações.
    O Sr. Celso Roberto estava com razão sobre o erro estar na função Val().
    Efetuei as alterações de conforme ele sugeriu e o parcelamento esta gerando valores que totalizam o valor da OS.
    Estou dando o tópico como resolvido agradecendo a todos.
    Muito obrigado.

    Antonio Aurélio
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3492
    Registrado : 13/12/2016

    parcelas - [Resolvido]Parcelas com divisão exata Empty Re: [Resolvido]Parcelas com divisão exata

    Mensagem  Alexandre Fim 29/3/2019, 12:20

    Valeu Antonio...boa sorte !!!

    Valeu Celso, pela força ai !!!

    Abraços a todos
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    parcelas - [Resolvido]Parcelas com divisão exata Empty Re: [Resolvido]Parcelas com divisão exata

    Mensagem  Celso Roberto 2/4/2019, 17:20

    Olá a todos..

    Ficamos felizes por ter ajudado cheers cheers cheers

    Abraços e sucesso a todos


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Conteúdo patrocinado


    parcelas - [Resolvido]Parcelas com divisão exata Empty Re: [Resolvido]Parcelas com divisão exata

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 10:33