MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Erro de compilação

    Compartilhe

    gabrielbarbosa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 21/10/2015

    [Resolvido]Erro de compilação

    Mensagem  gabrielbarbosa em Qua 21 Out 2015, 16:27

    Olá gente,

    Estou me deparando com um erro besta mas não consigo achar solução. As vezes quando eu elevo alguma variável a qualquer número aparece a mensagem "Erro de compilação".

    Sub raizquadrada()

    Dim a, b, c, delta, x1, x2 As Double


    a = InputBox("Digite o valor de a")
    b = InputBox("Digite o valor de b")
    c = InputBox("Digite o valor de c")

    delta = b^2 - 4 * a * c

    If delta < 0 Then
       MsgBox "Delta<0. Não existe raízes reais"
    End If

    end sub
    Nesse caso, na parte da equação do delta, o "b^2"  que é o problema. Tirei uma foto de como ficou: [Você precisa estar registrado e conectado para ver este link.]


    Última edição por gabrielbarbosa em Qui 22 Out 2015, 13:23, editado 2 vez(es)

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3206
    Registrado : 15/03/2013

    Re: [Resolvido]Erro de compilação

    Mensagem  ahteixeira em Qua 21 Out 2015, 16:42

    Olá Gabriel, bem-vindo ao fórum.

    Parece que está a faltar o End Sub no final do código da sub raizquadrada().
    Se o problema se mantiver, poste o código da sub para podermos testar.

    Caso resolva, não se esqueça de dar o tópico como resolvido, veja como fazer:
    [Você precisa estar registrado e conectado para ver este link.]

    Abraço

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: [Resolvido]Erro de compilação

    Mensagem  JPaulo em Qua 21 Out 2015, 18:03

    Ola;

    A função do VBA para calcular a raiz quadrada é a Sqr, mas esta função não aceita valores negativos.

    Faça o teste da sua função, desta forma, isolando a primeira equação;
    Código:
    delta = ((b ^ 2) - 4) * a * c


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    gabrielbarbosa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 21/10/2015

    Re: [Resolvido]Erro de compilação

    Mensagem  gabrielbarbosa em Qua 21 Out 2015, 20:49

    Olá ahtexeira,

    o End Sub não é o problema não. Ao copiar o código, ele saiu sem o End Sub.

    E também testei a forma de JPaulo, e também não foi. De qualquer forma, eu não poderia utilizar por que fugiria da fórmula de Baskara para resolver raiz quadrada.

    Obrigado pela tentativa de ajudar.


    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3206
    Registrado : 15/03/2013

    Re: [Resolvido]Erro de compilação

    Mensagem  ahteixeira em Qua 21 Out 2015, 21:28

    Olá, obrigado pelo retorno.
    Como costumo dizer, com o MáximoAcess é sempre aprender.

    Lanço este desafio, cole o código aqui no fórum (assim evita de termos que transcever da imagem) e diga o resultado que deveria obter e os valores de a, b , c
    Para podermos testar.
    Abraço

    gabrielbarbosa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 21/10/2015

    Re: [Resolvido]Erro de compilação

    Mensagem  gabrielbarbosa em Qui 22 Out 2015, 13:17

    Consegui! O erro foi muito besta. A equação estava escrita da forma b^2- 4*a*c, sendo que o b^2 estava "junto" só que para o VBA, isso está errado. A forma correta é b ^ 2, percebe-se agora um espaço entre b, ^ , e 2. Agora ele rodou.

    Então ficou da mesma forma só que agora separando o b do ^ e do 2.

    Geralmente o VBA faz essa separação de forma automática, só que dessa vez não.

    Ficou assim:

    Sub raizquadrada()

    Dim a, b, c, delta, x1, x2 As Double


    a = InputBox("Digite o valor de a")
    b = InputBox("Digite o valor de b")
    c = InputBox("Digite o valor de c")

    delta = b ^ 2 - 4 * a * c

    If delta < 0 Then
    MsgBox "Delta<0. Não existe raízes reais"
    End If

    If delta > 0 Then

    x1 = (-b + Sqr(delta)) / (2 * a)
    x2 = (-b - Sqr(delta)) / (2 * a)

    MsgBox "x1= " & x1 & Chr(13) & "x2= " & x2

    End If

    If delta = 0 Then

    x1 = -b / (2 * a)

    MsgBox "Delta=0 . Logo, x1=x2= " & x1

    End If

    End Sub

    Obrigado pela ajuda de todos!

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3206
    Registrado : 15/03/2013

    Re: [Resolvido]Erro de compilação

    Mensagem  ahteixeira em Qui 22 Out 2015, 14:53

    Olá Gabriel Barbosa, o VBA por vezes tem umas coisas assim Basketball
    Obrigado pelo retorno, os utilizadores do fórum agradecem.
    Abraço

      Data/hora atual: Dom 04 Dez 2016, 12:16