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]Função antes de atualizar - BeforeUpdate

    avatar
    tonin
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 23/11/2016

    [Resolvido]Função antes de atualizar - BeforeUpdate Empty [Resolvido]Função antes de atualizar - BeforeUpdate

    Mensagem  tonin 19/5/2017, 17:23

    Preciso de ajuda com esta função que não consigo fazer funcionar alguém poderia me ajudar ou estou colocando no lugar errado ou faltando mais informação.


    Private Sub BO_CBMS_BeforeUpdate(Cancel As Integer)
    If IsNull(BO_CBMS) Then
    MsgBox "NUMERO DE TO CBMS É OBRIGATORIO !", vbExclamation, " ATENÇÃO "
    Cancel = True
    BO_CBMS.SetFocus
    If (Not IsNull(DLookup("[BO_CBMS]", "ocorrencias", "[BO_CBMS]='" & Me!BO_CBMS & "'"))) Then
    MsgBox " ESTE NUMERO DE BO CBMS ... JÁ EXISTE " & BO_CBMS.Text, vbInformation, "ATENÇÃO"
    Cancel = True 'CANCELA O EVENTO
    Me!BO_CBMS.Undo 'DE FAZ A DIGITAÇAO
    End if
    End If
    End Sub
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Função antes de atualizar - BeforeUpdate Empty Re: [Resolvido]Função antes de atualizar - BeforeUpdate

    Mensagem  Alvaro Teixeira 19/5/2017, 18:06

    Olá, teste assim:
    Código:
    Private Sub BO_CBMS_BeforeUpdate(Cancel As Integer)
        If IsNull(BO_CBMS) Then
            MsgBox "NUMERO DE TO CBMS É OBRIGATORIO !", vbExclamation, " ATENÇÃO "
            Cancel = True
            BO_CBMS.SetFocus
            If DCount("[BO_CBMS]", "ocorrencias", "[BO_CBMS]='" & Me!BO_CBMS & "'") > 1 Then
                MsgBox " ESTE NUMERO DE BO CBMS ... JÁ EXISTE " & BO_CBMS.Text, vbInformation, "ATENÇÃO"
                Cancel = True 'CANCELA O EVENTO
                Me!BO_CBMS.Undo 'DE FAZ A DIGITAÇAO
            End If
        End If
    End Sub
    Não se esqueça da Indentação do código.
    Abraço
    avatar
    tonin
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 23/11/2016

    [Resolvido]Função antes de atualizar - BeforeUpdate Empty Função antes de atualizar - BeforeUpdate

    Mensagem  tonin 19/5/2017, 19:00

    Caro amigo inseri o código do jeito que você modificou e não deu certo ele passa pra próxima caixa de teste normal não da como esta em branco e nem repetido.

    não entendi o que você disse em baixo sobre identificação do código.
    pode ser isso que estou errando.

    fico muito agradecido pela sua ajuda.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Função antes de atualizar - BeforeUpdate Empty Re: [Resolvido]Função antes de atualizar - BeforeUpdate

    Mensagem  Alvaro Teixeira 20/5/2017, 00:58

    Olá Ricardo,
    Tinha o outro IF dentro do IF, foi trocar por ELSIF
    Acho que assim vai dar:
    Código:
    Private Sub BO_CBMS_BeforeUpdate(Cancel As Integer)
        If IsNull(BO_CBMS) Then
            MsgBox "NUMERO DE TO CBMS É OBRIGATORIO !", vbExclamation, " ATENÇÃO "
            Cancel = True
        ElseIf DCount("[BO_CBMS]", "ocorrencias", "[BO_CBMS]='" & Me!BO_CBMS & "'") > 1 Then
            MsgBox " ESTE NUMERO DE BO CBMS ... JÁ EXISTE " & BO_CBMS.Text, vbInformation, "ATENÇÃO"
            Cancel = True 'CANCELA O EVENTO
        End If
    End Sub

    Quanto à Indentação, verifique os links da mensagem nº 3 do tópico abaixo:
    https://www.maximoaccess.com/t23803-calendario

    Abraço
    avatar
    tonin
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 23/11/2016

    [Resolvido]Função antes de atualizar - BeforeUpdate Empty Função antes de atualizar - BeforeUpdate

    Mensagem  tonin 23/5/2017, 15:13

    Caro amigo ahteixeira inseri o código do jeito que você postou e também não deu certo.
    não sei aonde estou errando, pois sou novato neste assunto.
    a caixa de testo onde vai o numero da ocorrência tem uma mascara de entrada "0000/00" pode ser isto ou tem outra entrada que esta broqueando
    quando deixo só o código referente a duplicação do numero ele funciona agora os dois junto não.
    esta caixa é a primeira que tem que ser digitada.
    li o artigo que diz sobre indentação.

    fico muito agradecido pela sua ajuda.
    tauron
    tauron
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1394
    Registrado : 07/12/2011

    [Resolvido]Função antes de atualizar - BeforeUpdate Empty Re: [Resolvido]Função antes de atualizar - BeforeUpdate

    Mensagem  tauron 23/5/2017, 16:52

    Tente no ao perder foco.

    Private Sub BO_CBMS_LostFocus(Cancel As Integer)
       If IsNull(BO_CBMS) Then
           MsgBox "NUMERO DE BO CBMS É OBRIGATORIO !", vbExclamation, " ATENÇÃO "
           Cancel = True
           BO_CBMS.SetFocus
           If DCount("[BO_CBMS]", "ocorrencias", "[BO_CBMS]='" & Me!BO_CBMS & "'") > 1 Then
               MsgBox " ESTE NUMERO DE BO CBMS ... JÁ EXISTE " & BO_CBMS.Text, vbInformation, "ATENÇÃO"
               Cancel = True 'CANCELA O EVENTO
               Me!BO_CBMS.Undo 'DESFAZ A DIGITAÇAO
           End If
       End If
    End Sub
    avatar
    tonin
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 23/11/2016

    [Resolvido]Função antes de atualizar - BeforeUpdate Empty Função antes de atualizar - BeforeUpdate

    Mensagem  tonin 24/5/2017, 15:29

    Caro amigo ahteixeira, ja tentei de tudo nao consigo. estou mandando meu projeto que esta em andamento para que possa ver onde estou errando.
    é o primeiro campo numero de bo cbms do formulario.
    Anexos
    [Resolvido]Função antes de atualizar - BeforeUpdate AttachmentBO_CBMS.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (284 Kb) Baixado 7 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Função antes de atualizar - BeforeUpdate Empty Re: [Resolvido]Função antes de atualizar - BeforeUpdate

    Mensagem  Alvaro Teixeira 24/5/2017, 16:04

    Olá, teste assim:
    Código:
    Private Sub BO_CBMS_BeforeUpdate(Cancel As Integer)
        
        If Len(BO_CBMS & "") = 0 Then
            MsgBox "NUMERO DE TO CBMS É OBRIGATORIO !", vbExclamation, " ATENÇÃO "
            Cancel = True
            Exit Sub
        End If
        
        If DCount("[BO_CBMS]", "ocorrencias", "[BO_CBMS]='" & Me!BO_CBMS & "'") > 1 Then
            MsgBox " ESTE NUMERO DE BO CBMS ... JÁ EXISTE " & BO_CBMS.Text, vbInformation, "ATENÇÃO"
            Cancel = True 'CANCELA O EVENTO
            Me!BO_CBMS.Undo 'DESFAZ A DIGITAÇAO
        End If
    End Sub

    Para controlar se o campo ficou vazio quando é novo.
    O melhor será controlar ao receber o foco o proximo campo (DATA), teste assim depois se a primeira estiver ok:
    Código:
    Private Sub DATA_GotFocus()
        If Len(BO_CBMS & "") = 0 Then
            MsgBox "NUMERO DE TO CBMS É OBRIGATORIO !", vbExclamation, " ATENÇÃO "
            Cancel = True
            BO_CBMS.SetFocus
        End If
    End Sub

    Abraço
    avatar
    tonin
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 23/11/2016

    [Resolvido]Função antes de atualizar - BeforeUpdate Empty Função antes de atualizar - BeforeUpdate

    Mensagem  tonin 29/5/2017, 14:58

    Caro amigo ahteixeira, muito obrigado pela informação essa ultima que você me passou deu certo obrigado mesmo.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Função antes de atualizar - BeforeUpdate Empty Re: [Resolvido]Função antes de atualizar - BeforeUpdate

    Mensagem  Alvaro Teixeira 29/5/2017, 15:43

    Ola a todos,
    Ricardo, obrigado pelo retorno.
    Siga a recomendacao do colega Emerson "Nao perder o foco".
    Estude as alteracoes, para compreender o que estava acontecer.

    Abraco a todos

    Conteúdo patrocinado


    [Resolvido]Função antes de atualizar - BeforeUpdate Empty Re: [Resolvido]Função antes de atualizar - BeforeUpdate

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 10:42