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

    [Resolvido]arredondar preços

    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 280
    Registrado : 23/05/2011

    [Resolvido]arredondar preços Empty [Resolvido]arredondar preços

    Mensagem  Ney Santos 13/8/2020, 21:25

    Boa tarde"!

    tenho a sguinte função:
    Private Sub PORCENTAGEM()
    Dim DB As Database
    Dim rs, rs1 As DAO.Recordset
    Dim VLPORC As Variant
    Dim LUCRO
    Set DB = CurrentDb()
    Set rs = OpenForSeek("TBPRECOS")
    Set rs1 = OpenForSeek("PRODUTOS")
    rs.Index = "IDITEN"
    rs.Seek "=", Me.TXITEN.Column(0)
    rs1.Index = "IDPROD"
    rs1.Seek "=", Me.TXITEN.Column(0)
    If rs.NoMatch Then
    rs.AddNew
    rs1.Edit
    VLPORC = Me.TXCUSTOPROD * Me.TXMARGEM / 100
    Me.TXCUSTOCT = VLPORC
    Me.TXCUSTOCT.value = Format(Me!TXCUSTOCT.value, "Currency")
    LUCRO = Me.TXCUSTOPROD * Me.TXLUCRO / 100
    Me!TXVLRVENDA = LUCRO + Me!TXCUSTOCT + Me!TXCUSTOPROD
    Me!TXVLRVENDA.value = Format(Me!TXVLRVENDA.value, "Currency")
    rs!ITEN = Me!TXITEN
    rs!VLRVENDA = Me!TXVLRVENDA
    rs!TAXA = Me!TXMARGEM
    rs1!CUSTO = Me!TXCUSTOPROD
    rs.Update
    rs1.Update
    Else
    rs.Edit
    rs1.Edit
    VLPORC = Me.TXCUSTOPROD * Me.TXMARGEM / 100
    Me.TXCUSTOCT = VLPORC
    Me.TXCUSTOCT.value = Format(Me!TXCUSTOCT.value, "Currency")
    LUCRO = Me.TXCUSTOPROD * Me.TXLUCRO / 100
    Me!TXVLRVENDA = LUCRO + Me!TXCUSTOCT + Me!TXCUSTOPROD
    Me!TXVLRVENDA.value = Format(Me!TXVLRVENDA.value, "Currency")
    Me.TXVLRVENDA.value = Round(Me.TXVLRVENDA.value, 2)
    rs!ITEN = Me!TXITEN
    rs!VLRVENDA = Me!TXVLRVENDA
    rs!TAXA = Me!TXMARGEM
    rs1!CUSTO = Me!TXCUSTOPROD
    rs.Update
    rs1.Update
    rs.Close
    rs1.Close
    End If

    End Sub
    Elal calcula o preço de um produto, somando a taxa de cartão de credito e a margem de lucro informada pelo usuário.
    Porem tenho um cliente que quer os preços fiquem redondos.
    Ja tentei a função round mas nao consegui fazer funcionar.
    Exemplo : Me.TXVLRVENDA.value = Round(Me.TXVLRVENDA.value, 2)
    Alguem poderia me dare um ajuda de como fazer esse arredondamento/
    Exemplo:
    R$3,48= 3,50
    R$3,44 =3,40
    avatar
    caique
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 08/12/2015

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  caique 13/8/2020, 22:05

    Boa tarde Ney.

    Como usar para arrdenodar para 2 casas decimais

    Valor Arredondado= Arredondar(ValorOriginal,2)

    Use essa função:

    Public Function Arredondar(ValorComDecimal As Double, Casas As Integer) As Double

       Dim ValorTexto As String
       Dim Virgula As Integer
       Dim ProxDig As Integer
       Dim ValorD As Double
           
       
       
       ValorTexto = Trim$(Str$(ValorComDecimal)) & String(Casas, "0")
       
       Virgula = InStr(1, ValorTexto, ".")
       
       ValorD = Val(Mid$(ValorTexto, 1, Virgula + Casas))
       
       If Virgula = 0 Then
           Arredondar = ValorComDecimal
           Exit Function
       Else
           ProxDig = Int(Mid$(ValorTexto, Virgula + Casas + 1, 1))
           If ProxDig >= 5 Then
               Arredondar = ValorD + 1 / 10 ^ Casas
           Else
               Arredondar = ValorD
           End If
       End If
       
    End Function
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7930
    Registrado : 05/11/2009

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Alexandre Neves 13/8/2020, 22:11

    Boa noite,
    Crie uma função


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Alexandre Fim 13/8/2020, 22:37

    Olá,

    Você também pode utilizar as funções do Access.
    Ex.:
    - Format(Round("335.179,495",2),"#,###.#0")
    - Resultado: 335.179,50


    Espero ter ajudado

    Boa sorte


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 280
    Registrado : 23/05/2011

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Ney Santos 13/8/2020, 23:11

    Prezados, obrigado pelas respostas..
    Antes de postar eu ja tinha dado uma olhada nospost aqui com exeplos de arredondamento.
    Usei a função que nosso amigo Caique postou, não sei se fiz da maneira correta pois coloquei assim:
    Me.TXVLRVENDA = Arredondar(Me.TXVLRVENDA, 2)
    No caso peguei um produto que custou R$0,45 centavos coloquei a margem doc artãod e credito (5%) e a magemde lucro 90% o resultado foi
    R$0,88 ous eja não funcionou.
    oque eu queria e que ficaasse redondo, no caso R$0,90.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Alexandre Fim 13/8/2020, 23:34

    Ney,

    O campo "Me.TXVLRVENDA" já vem com o valor calculado?


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 280
    Registrado : 23/05/2011

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Ney Santos 13/8/2020, 23:36

    ele recebe o valor calculado alexandre..
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 280
    Registrado : 23/05/2011

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Ney Santos 14/8/2020, 00:15

    segue exemplo do aplicastivo:
    Anexos
    [Resolvido]arredondar preços AttachmentNovo(a) Microsoft Access Banco de Dados (3).zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (81 Kb) Baixado 2 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Alexandre Fim 14/8/2020, 00:17

    Tente isso:

    Me.TXVLRVENDA = Format(Round(Me.TXVLRVENDA,1),"#,##0.#0")


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 280
    Registrado : 23/05/2011

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Ney Santos 14/8/2020, 00:24

    Very Happy Very Happy Very Happy Very Happy Very Happy
    Caramba Alexandfe mais uma vez voce matou a cobra e mostrou a cobra morta..
    Funcionou certinho.
    Queri entender essa linha que vce screveu.. Very Happy Very Happy Very Happy Very Happy
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Alexandre Fim 14/8/2020, 00:27

    Então,
    o Problema está aqui:
    [Resolvido]arredondar preços Arrend10


    Se vc utilizar a instrução abaixo, vai funcionar:

    Me.TXVLRVENDA = Format(Round(Me.TXVLRVENDA,1),"#,##0.#0")

    [Resolvido]arredondar preços Reend210


    Já existem funções nativas do Access que fazem o arredondamento.

    Boa sorte


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Alexandre Fim 14/8/2020, 00:29

    Função ROUND com Format.
    Não tem erro !!!


    https://docs.microsoft.com/pt-br/office/vba/language/reference/user-interface-help/round-function



    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 280
    Registrado : 23/05/2011

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Ney Santos 14/8/2020, 00:57

    Muito obrigado Alexandre..
    Alem de reoslver ainda da uma baita aula.
    Graditão sempre
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]arredondar preços Empty Re: [Resolvido]arredondar preços

    Mensagem  Alexandre Fim 14/8/2020, 01:02

    Tamo junto, Ney cheers cheers
    Abraços


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

      Data/hora atual: 12/4/2021, 01:16