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

2 participantes

    condicional if

    avatar
    arturgov
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 07/06/2014

    condicional if Empty condicional if

    Mensagem  arturgov 26/10/2021, 18:30

    Boa tarde, estou com uma dificuldade em realizar um condicional de if. Tenho um formulário com vários campos tipo:

    nome do cliente, convenio, código de barra, valor e assim por diante.

    Minha situação é que o campo valor se ele for maior ou igual 0,01 arredonda o valor e acrescenta 1,00, até aqui tudo bem, a minha situação se complica quando o convenio for 2 que ele não precisa executa os acréscimos.
    Desde ja agradeço.

    Segue o codigo abaixo:

    Private Sub TxtValor_LostFocus()
    If Me.TxtConvenio = 2 Then
    TxtValor = Me.TxtValor
    Else
    If TxtValor >= 0.01 Then
    TxtAredondamento = 1
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If


    If TxtValor >= 50.01 Then
    TxtAredondamento = 2
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If


    If TxtValor >= 200.01 Then
    TxtAredondamento = 3
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If


    If TxtValor >= 400.01 Then
    TxtAredondamento = 5
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If


    If TxtValor >= 600.01 Then
    TxtAredondamento = 6
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If


    If TxtValor >= 900.01 Then
    TxtAredondamento = 10
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If

    If TxtValor >= 1500.01 Then
    TxtAredondamento = 15
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If


    If TxtValor >= 2500.01 Then
    TxtAredondamento = 20
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If

    If TxtValor >= 3000.01 Then
    TxtAredondamento = 25
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If

    If TxtValor >= 4000.01 Then
    TxtAredondamento = 30
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If

    End If
    End Sub

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4801
    Registrado : 20/04/2011

    condicional if Empty Re: condicional if

    Mensagem  Silvio 26/10/2021, 19:24

    Boas....acho e penso que seria assim...


    Private Sub TxtValor_LostFocus()

    If Me.TxtConvenio = 2 Then
    TxtValor = Me.TxtValor

    Else If TxtValor >= 0.01 Then
    TxtAredondamento = 1
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor


    ElseIf TxtValor >= 50.01 Then
    TxtAredondamento = 2
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor



    ElseIf TxtValor >= 200.01 Then
    TxtAredondamento = 3
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor



    ElseIf TxtValor >= 400.01 Then
    TxtAredondamento = 5
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor



    ElseIf TxtValor >= 600.01 Then
    TxtAredondamento = 6
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor



    ElseIf TxtValor >= 900.01 Then
    TxtAredondamento = 10
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor


    ElseIf TxtValor >= 1500.01 Then
    TxtAredondamento = 15
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor



    ElseIf TxtValor >= 2500.01 Then
    TxtAredondamento = 20
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor


    ElseIf TxtValor >= 3000.01 Then
    TxtAredondamento = 25
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor


    ElseIf TxtValor >= 4000.01 Then
    TxtAredondamento = 30
    TxtDiferenca = Round(TxtValor + TxtAredondamento + 0.5)
    TxtValorTaxa = TxtDiferenca - TxtValor
    End If

    End Sub


    Se não ocorrer o resultado esperado, sugiro procurar por " Select case" aqui no fórum, pois temos vários exemplos e situações que podem lhe ajudar e muito.

    Bons estudo.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."

      Data/hora atual: 30/11/2021, 00:31