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]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, 17:12

    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 4 vez(es)
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

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

    Mensagem  Silvio em Seg 09 Jan 2017, 17:27

    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, 17:37

    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 : 3536
    Registrado : 20/04/2011

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

    Mensagem  Silvio em Seg 09 Jan 2017, 17:39

    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, 17:46

    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 Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Seg 09 Jan 2017, 17:53

    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, 18:17

    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, 20:18

    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, 20:22

    resolvido!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Sex 31 Mar 2017, 23:34

    Olá Mario Plinio,
    Obrigado pelo retorno.
    Os utilizadores do fórum agradecem.
    Abraço

      Data/hora atual: Qui 27 Jul 2017, 09:34