MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Função VerificaMultiplo

    Compartilhe

    textandu
    Novato
    Novato

    Respeito às Regras 100%

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

    [Resolvido]Função VerificaMultiplo

    Mensagem  textandu em Sab 09 Abr 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
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Função VerificaMultiplo

    Mensagem  Avelino Sampaio em Sab 09 Abr 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!

    textandu
    Novato
    Novato

    Respeito às Regras 100%

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

    RESOLVIDO

    Mensagem  textandu em Sab 09 Abr 2016, 18:48

    boa meu amigo não conhecia o CDec vlw mesmo Resolvido!! cheers
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Função VerificaMultiplo

    Mensagem  FabioPaes em Sab 09 Abr 2016, 20:51

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

    textandu
    Novato
    Novato

    Respeito às Regras 100%

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

    Re: [Resolvido]Função VerificaMultiplo

    Mensagem  textandu em Dom 10 Abr 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

      Data/hora atual: Ter 22 Ago 2017, 23:31