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]Código no evento ao alterar - dúvida

    Compartilhe

    MPC
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/12/2015

    [Resolvido]Código no evento ao alterar - dúvida

    Mensagem  MPC em Seg 09 Jan 2017, 12:12 pm

    Boa tarde.

    Ao ajudar o amigo Carlos  e, continuando meu aprendizado, tentei fazer uns testes com a formatação da cor do texto na caixa de texto, adicionando um código no evento Ao Alterar da caixa.

    No entanto, não estou conseguindo o propósito.

    Ao apertar uma tecla, o código é acionado, mas eu noto que o valor digitado não é atribuído à variável txtNota (usando o inspetor de variáveis), gerando erro.

    Eu entendo que ao digitar alguma coisa na caixa de texto estou alterando-a e o valor digitado deveria ser atribuído à variável, mas parece que estou muito equivocado!

    Como resolver esta questão?

    Muito obrigado.
    Anexos
    CorAoDigitar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (29 Kb) Baixado 2 vez(es)
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Código no evento ao alterar - dúvida

    Mensagem  Silvio em Seg 09 Jan 2017, 12:27 pm

    Experimente assim, no evento após atualizar


    Código:
    Private Sub txtNota_AfterUpdate()
        Dim cNota As Double
        On Error GoTo Mensagem:
        cNota = txtNota
        If cNota < 6 Then
            txtNota.ForeColor = vbRed
            txtStatus.ForeColor = vbRed
            txtStatus = "REPROVADO"
        End If
        If cNota >= 6 Then
            txtNota.ForeColor = vbBlue
            txtStatus.ForeColor = vbBlue
            txtStatus = "APROVADO"
        End If
        Exit Sub
    Mensagem:
        MsgBox "Não funcionou!", vbOKOnly, "Erro"
    End Sub


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    MPC
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/12/2015

    Re: [Resolvido]Código no evento ao alterar - dúvida

    Mensagem  MPC em Seg 09 Jan 2017, 12:37 pm

    Obrigado Silvio.

    Mas a minha tentativa é trocar a cor enquanto estou digitando e não após atualizar.

    Assim, ao digitar qualquer valor entre 0 e 5, já ficaria vermelho. Se for 6 a 9 já ficaria azul.

    Isto é, a cor troca enquanto digito e não após toda a digitação!

    E se eu digito "1" por exemplo, ele fica vermelho mas se eu digito "0" logo depois, já ficaria azul (pois agora eu teria o valor 10)!
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Código no evento ao alterar - dúvida

    Mensagem  Silvio em Seg 09 Jan 2017, 12:39 pm

    enquanto digita não vai ter a mudança de cor de forma alguma.

    Onde pode ser colocado esse evento para que isso aconteça:

    Ao Sair.
    Ao alterar.
    Após atualizar.
    Ao perder o foco.


    Fora isso, desconheço qualquer rotina que mude a cor, durante a digitação !!


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    MPC
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/12/2015

    Re: [Resolvido]Código no evento ao alterar - dúvida

    Mensagem  MPC em Seg 09 Jan 2017, 12:46 pm

    Veja, a rotina no evento Ao Alterar roda, mas o valor que foi digitado não é passado a ela. Assim sempre vai um valor Null.
    O mais estranho é que nem o valor já previamente digitado é considerado!
    avatar
    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Código no evento ao alterar - dúvida

    Mensagem  ahteixeira em Seg 09 Jan 2017, 12:53 pm

    Olá a todos,
    Estou no celular e não vi projeto.
    Tente no evento ao primir a tecla.
    Abraço

    MPC
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/12/2015

    Re: [Resolvido]Código no evento ao alterar - dúvida

    Mensagem  MPC em Seg 09 Jan 2017, 1:17 pm

    Tem dois eventos: Ao Apertar Tecla e Ao Pressionar Tecla (????) Qual a diferença?

    No evento Ao Apertar Tecla (KeyDown) não funciona (mensagem erro).

    Já no evento Ao Pressionar Tecla (KeyPress) funciona mas não tem um funcionamento correto pois a cor só troca após um Enter ou Tab, o que acaba sendo praticamente igual ao AfterUpdate!


    MPC
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/12/2015

    Re: [Resolvido]Código no evento ao alterar - dúvida

    Mensagem  MPC em Seg 09 Jan 2017, 3:18 pm

    Amigos, resolvi o problema.

    Aqui vai a solução.

    O evento Ao Alterar não atualiza o VALOR ... assim txtNota não é atualizado.

    Mas o TEXTO é sim alterado. Na expressão cNota =  CCur(txtNota), txtNota seria o seu VALOR.
    Mas se fizermos cNota = CCur(Me.txtNota.Text), estou fazendo referência ao texto alterado. O valor só aparece após atualização!

    Funcionou perfeitamente!!

    Se o Carlos vir este tópico, poderá usar no seu código!

    Agradeço aos vossos esforços em me ajudar!

    Código:
    Private Sub txtNota_Change()
        Dim cNota As Currency
        On Error GoTo Mensagem:
        cNota = CCur(Me.txtNota.Text)
        If cNota < 6 Then
            txtNota.ForeColor = vbRed
            txtStatus.ForeColor = vbRed
            txtStatus = "REPROVADO"
        Else
            txtNota.ForeColor = vbBlue
            txtStatus.ForeColor = vbBlue
            txtStatus = "APROVADO"
        End If
        Exit Sub
    Mensagem:
        MsgBox "Não funcionou!", vbOKOnly, "Erro"
    End Sub

    MPC
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/12/2015

    Re: [Resolvido]Código no evento ao alterar - dúvida

    Mensagem  MPC em Seg 09 Jan 2017, 3:22 pm

    resolvido!

      Data/hora atual: Qui 23 Mar 2017, 7:56 pm