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]Um VBA para não permitir o avanço com o erro...

    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Um VBA para não permitir o avanço com o erro...

    Mensagem  MPS 23/4/2012, 04:34

    Oi! Como que eu forço o usuário, através do VBA, a preencher corretamente o campo N_Saida2, pois se ele utilizar a tecla TAB ele muda de registro?
    Segue o comando:

    Private Sub N_Saida2_AfterUpdate()
    VerificaSaida2
    End Sub

    Private Sub VerificaSaida2()
    If N_Saida2.Value < N_Saida1.Value Then
    MsgBox "Numero de Saida2 da Série não pode ser menor que o numero de Saida1. Relance, por favor", vbInformation, "Atenção"
    N_Saida2.Value = 0
    Me.N_Saida1.SetFocus
    Me.N_Saida2.SetFocus
    End If
    End Sub

    Agradeço desde já!
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  Marcelo David 23/4/2012, 12:28

    Amigo, você não chamou a sub!
    Em vez de fazer assim:

    Private Sub N_Saida2_AfterUpdate()
    VerificaSaida2
    End Sub

    Private Sub VerificaSaida2()
    If N_Saida2.Value < N_Saida1.Value Then
    MsgBox "Numero de Saida2 da Série não pode ser menor que o numero de Saida1. Relance, por favor", vbInformation, "Atenção"
    N_Saida2.Value = 0
    Me.N_Saida1.SetFocus
    Me.N_Saida2.SetFocus
    End If
    End Sub

    Faça assim:

    Private Sub N_Saida2_AfterUpdate()
    Call VerificaSaida2 'O Call em vermelho chama a sub
    End Sub

    Private Sub VerificaSaida2()
    If N_Saida2.Value < N_Saida1.Value Then
    MsgBox "Numero de Saida2 da Série não pode ser menor que o numero de Saida1. Relance, por favor", vbInformation, "Atenção"
    Cancel = True 'Cancelo o evento e mantenho o foco no campo
    N_Saida2.Value = 0
    End If
    End Sub

    Ou simplesmente assim:

    Private Sub N_Saida2_AfterUpdate()

    If N_Saida2.Value < N_Saida1.Value Then
    MsgBox "Numero de Saida2 da Série não pode ser menor que o numero de Saida1. Relance, por favor", vbInformation, "Atenção"
    Cancal = True 'Cancelo o evento e mantenho o foco no campo N_Saida2
    N_Saida2.Value = 0
    End If


    End Sub



    .................................................................................
    [Resolvido]Um VBA para não permitir o avanço com o erro... Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Um VBA para não permitir o avanço com o erro... Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Um VBA para não permitir o avanço com o erro... Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Um VBA para não permitir o avanço com o erro... Marcel11
    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  MPS 23/4/2012, 17:35

    Caro Marcelo, não surtiu efeito!
    Inclusive a subtração do...
    Me.N_Saida1.SetFocus
    Me.N_Saida2.SetFocus
    ...fez falta!
    O CALL e o CANCEL=TRUE continuou permitindo a mudança de registro sem exigir a correção do campo N_Saida2.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  Alexandre Neves 23/4/2012, 18:57

    Boa tarde, MPS

    E se colocar, ao entrar no controlo seguinte, a verificação se N_Saida2 é nulo. Se for, retorna ao controlo N_Saida2
    avatar
    Convidad
    Convidado


    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  Convidad 23/4/2012, 19:27


    Ou tente usar o evento Before_Update(Cancel As Integer).
    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  MPS 24/4/2012, 00:32

    Caro Alexandre, e se o usuário utilziar o mouse e passar por este controlo?
    Caro Noberto, não entendi a tua orientação!
    Obrigado a ambos!
    avatar
    Convidad
    Convidado


    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  Convidad 24/4/2012, 00:38


    O Marcelo te sugeriu um código no evento AfterUpdate.
    Minha sugestão é que altere este evento para BeforeUpdate, que permite usar o Cancel = True para cancelar a atualização do campo se a validação não for satisfatória.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  Marcelo David 24/4/2012, 01:49

    Verdade Norbs, na correi ei acabei não atentando para o evento! Grato pela observação!! cheers


    .................................................................................
    [Resolvido]Um VBA para não permitir o avanço com o erro... Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Um VBA para não permitir o avanço com o erro... Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Um VBA para não permitir o avanço com o erro... Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Um VBA para não permitir o avanço com o erro... Marcel11
    avatar
    Convidad
    Convidado


    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  Convidad 24/4/2012, 02:00


    Um grande abraço pra ti Marcelo!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  Alexandre Neves 24/4/2012, 11:37

    Bom dia, MPS

    Como só referiu o premir o TAB, lhe dei a sugestão.
    Tente no acontecimento Form_BeforeUpdate
    avatar
    Convidad
    Convidado


    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  Convidad 12/5/2012, 18:29


    Como não tivemos retorno, o tópico passa a resolvido.

    Se necessário, basta dar continuidade.

    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  MPS 23/5/2012, 20:20

    Caros, desculpem-me a demora! Mas só hoje consegui fazer os testes.
    Coloquei em N_saida2 beforeupdate o seguinte:
    If N_Saida2.Value < N_Saida1.Value Then
    MsgBox "Numero de Saida2 da Série não pode ser menor que o numero de Saida1. Relance, por favor", vbInformation, "Atenção"
    Cancel = True 'Cancelo o evento e mantenho o foco no campo N_Saida2
    N_Saida2.Value = 0
    End If

    E deu uma mensagem 2115 dizendo que esta função está evitando o programa salve os dados do campo.

    O que pode ser?
    Agradeço desde já!!

    Conteúdo patrocinado


    [Resolvido]Um VBA para não permitir o avanço com o erro... Empty Re: [Resolvido]Um VBA para não permitir o avanço com o erro...

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 06:38