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


3 participantes

    [Resolvido]Função VerificaMultiplo

    avatar
    textandu
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 05/08/2013

    [Resolvido]Função VerificaMultiplo Empty [Resolvido]Função VerificaMultiplo

    Mensagem  textandu 9/4/2016, 17:28

    Olá pessoal, sempre que fiquei preso em algum código encontrei a solução por aqui, mas eis meu primeiro tópico estou tendo problema com o VB para verificar se o número é múltiplo mas a função não está funcionando como deveria. Trabalho com Access 2003 o sistema roda em windows server 2008 mas acredito que não é o SO pois estou programando num windows 10. No código abaixo eu já coloquei os valores fixos para melhor entendimento essa função deveria cair na 1ª condição do "IF" e a função retornar "false". Mas o VB tá doido diz que 7 não é igual a 7, e o resto da divisão de 14,7 por 2,1 não é 0.

    Help-me?  Neutral

    Public Function VerificaMultiplo()
    Dim X As Double
    Dim Y As Double
    Dim Z As Double

       X = CDbl((14.7 / 2.1))
       Y = CDbl(CInt(14.7 / 2.1))
       Z = 14.7 Mod 2.1

       If Z = 0 Or (X = Y) = True Then
           VerificaMultiplo = False
       Else
           VerificaMultiplo = True
       End If

    End Function
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3877
    Registrado : 04/04/2010

    [Resolvido]Função VerificaMultiplo Empty Re: [Resolvido]Função VerificaMultiplo

    Mensagem  Avelino Sampaio 9/4/2016, 18:19

    Olá!

    use fórmulas mais precisas quando estiver lhe dando com ponto flutuante

    X= CDec((14.7 / 2.1))
    y= CDec(CInt(14.7 / 2.1))

    x=y ::: Verdadeiro

    substitua o MOD pela fórmula:

    Dividendo - INT(Dividendo/divisor)*Divisor

    13.7 - Int(13.7/6.5)*6.5 :::> 0

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso irrestrito ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    textandu
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 05/08/2013

    [Resolvido]Função VerificaMultiplo Empty RESOLVIDO

    Mensagem  textandu 9/4/2016, 18:48

    boa meu amigo não conhecia o CDec vlw mesmo Resolvido!! cheers
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Função VerificaMultiplo Empty Re: [Resolvido]Função VerificaMultiplo

    Mensagem  FabioPaes 9/4/2016, 20:51

    Amigo textandu, poderia montar um exemplo pra nos com essa Função em um Modulo?
    avatar
    textandu
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 19
    Registrado : 05/08/2013

    [Resolvido]Função VerificaMultiplo Empty Re: [Resolvido]Função VerificaMultiplo

    Mensagem  textandu 10/4/2016, 01:51

    Segue abaixo. A variável Mult recebe a coluna 5 de uma caixa de combinação que é o múltiplo cadastrado em um determinado produto. E a variável Quant recebe a quantidade digitada em uma venda, então essa função fica no evento "antes de atualizar" do campo quantidade retornando false a quantidade está correta e segue a venda, se retornar true dá a mensagem e chama um form solicitando senha para permitir vender mesmo com múltiplo estando errado.

    Public Function VerificaMultiplo()
    Dim Quant As Double
    Dim Mult As Double
    Dim X As Double
    Dim Y As Double

    Mult = Forms!Vendas![VendasItens].Form![Código da Mercadoria].Column(5)
    Quant = Forms!Vendas![VendasItens].Form![QUANTIDADE]
    X = CDec((Quant / Mult))
    Y = CDec(CInt(Quant / Mult))

    If (Mult <> 0) Then
    If X = Y Then
    VerificaMultiplo = False
    Else
    menss = MsgBox("Você digitou uma quantidade inválida. Esta mercadoria só aceita múltiplos de " & Mult & " !", vbExclamation, "Aviso")
    VerificaMultiplo = True
    End If
    End If

    End Function

    Conteúdo patrocinado


    [Resolvido]Função VerificaMultiplo Empty Re: [Resolvido]Função VerificaMultiplo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 07:44