MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Mensagem de erro para mascara de entrada.

    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 373
    Registrado : 20/07/2010

    [Resolvido]Mensagem de erro para mascara de entrada. Empty [Resolvido]Mensagem de erro para mascara de entrada.

    Mensagem  OLDRIVG em 25/6/2019, 13:55

    Prezados do fórum, bom dia.

    Encontrei aqui no Fórum, disponibilizado pelo Marcelo David, o código de erro abaixo para mascara de entrada:

    Private Sub Form_Error (DataErr As Integer, Response As Integer)
    Const INPUTMASK_VIOLATION = 2279
    If DataErr = INPUTMASK_VIOLATION Then
    MsgBox "Os dados inseridos para esse campo estão incorretos. Por favor, corriga.", vbInformation, "Dados incorretos"
    Response = acDataErrContinue
    End If
    End Sub


    entretanto, este código é implementado na propriedade Ao Ocorrer Erro do formulário.

    Alguém saberia informar se há alguma forma de utilizá-lo para um determinado campo e, caso positivo, como é feita as alterações?
    Ou se existe algum outro código que permita personalizar a msg de erro do Access?
    Desde já agradeço.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2179
    Registrado : 22/11/2016

    [Resolvido]Mensagem de erro para mascara de entrada. Empty Re: [Resolvido]Mensagem de erro para mascara de entrada.

    Mensagem  DamascenoJr. em 25/6/2019, 20:13

    Eu utilizo o código abaixo

    Código:
    Private Sub Form_Error(DataErr As Integer, Response As Integer)

        Dim strMSG As String
       
        If DataErr = 2279 Then
            Select Case Screen.ActiveControl.Name
                Case Me!txtCNS.Name
                    strMSG = "Complete a digitação do número de CNS antes de seguir para o próximo campo."
                Case Me!txtCPF.Name
                    strMSG = "Complete a digitação do número de CPF antes de seguir para o próximo campo."
                Case Me!txtDataNasc.Name
                    strMSG = "Complete a digitação da data de nascimento antes de seguir para o próximo campo."
                Case Else
                    strMSG = "A máscara de entrada violada ocorreu no controle " & Screen.ActiveControl.Name & "!"
            End Select
        ElseIf DataErr = 2237 Then
            Select Case Screen.ActiveControl.Name
                Case Me!cboNaturalidade.Name
                    strMSG = "Selecione uma naturalidade disponível na lista ou digite uma que coincida com uma das opções listadas."
                Case Else
                    strMSG = "Selecione uma das opções da lista ou digite uma que coincida com uma das opções listadas."
            End Select
        ElseIf DataErr = 2113 Then
            Select Case Screen.ActiveControl.Name
                Case Me!txtDataNasc.Name
                    strMSG = "A data informada não está em um formato válido."
                Case Else
                    strMSG = "O valor inserido não é válido para este campo."
            End Select
        End If
       
        Response = acDataErrContinue
        MsgBox strMSG, vbExclamation, "Atenção !!!"

    End Sub


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 373
    Registrado : 20/07/2010

    [Resolvido]Mensagem de erro para mascara de entrada. Empty Re: [Resolvido]Mensagem de erro para mascara de entrada.

    Mensagem  OLDRIVG em 26/6/2019, 12:48

    Prezado Ivan Jr, bom dia.

    Agradeço-lhe pela a atenção e sugestão.

    O código sugerido funciona em parte. Após as alterações, o código que enviou ficou da forma abaixo:

    Dim strMSG As String
       
       If DataErr = 2279 Then
            Select Case Screen.ActiveControl.Name
               Case Me!TelefoneRecado.Name
                   strMSG = "CASO O NÚMERO A SER DIGITADO SEJA DE TELEFONE FIXO, ACRESCENTE UM ZERO APÓS O CÓDIGO ENTRE PARENTESES. EXEMPLO: (XX)0 XXXX-XXXX, SEM TRAÇO E/OU ESPAÇO. CORRIJA PARA PROSSEGUIR."

               'Case Me!txtCPF.Name
                   'strMSG = "Complete a digitação do número de CPF antes de seguir para o próximo campo."
               'Case Me!txtDataNasc.Name
                   'strMSG = "Complete a digitação da data de nascimento antes de seguir para o próximo campo."
               'Case Else
                   'strMSG = "A máscara de entrada violada ocorreu no controle " & Screen.ActiveControl.Name & "!"
            End Select

       'ElseIf DataErr = 2237 Then
          'Select Case Screen.ActiveControl.Name
               'Case Me!cboNaturalidade.Name
                   'strMSG = "Selecione uma naturalidade disponível na lista ou digite uma que coincida com uma das opções listadas."
               'Case Else
                   'strMSG = "Selecione uma das opções da lista ou digite uma que coincida com uma das opções listadas."
            'End Select
       'ElseIf DataErr = 2113 Then
           'Select Case Screen.ActiveControl.Name
               'Case Me!txtDataNasc.Name
                   'strMSG = "A data informada não está em um formato válido."
               'Case Else
                   'strMSG = "O valor inserido não é válido para este campo."
           'End Select
       End If
       
       Response = acDataErrContinue
       MsgBox strMSG, vbExclamation, "                                                            ATENÇÃO!!!"

    Como pode observar, a minha necessidade é para apenas um campo(em vermelho). Apesar de ter desativado algumas linhas, quando a máscara é violada em outro campo que não seja o pretendido (em vermelho), a caixa de msg de erro (na cor verde) é exibida. Há alguma forma de resolver?
    Agradecido
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2179
    Registrado : 22/11/2016

    [Resolvido]Mensagem de erro para mascara de entrada. Empty Re: [Resolvido]Mensagem de erro para mascara de entrada.

    Mensagem  DamascenoJr. em 26/6/2019, 17:24

    Aparentemente tudo certo

    Código:
     If DataErr = 2279 Then
             Select Case Screen.ActiveControl.Name
                Case Me!TelefoneRecado.Name
                    strMSG = "CASO O NÚMERO A SER DIGITADO SEJA DE TELEFONE FIXO, ACRESCENTE UM ZERO APÓS O CÓDIGO ENTRE PARENTESES. EXEMPLO: (XX)0 XXXX-XXXX, SEM TRAÇO E/OU ESPAÇO. CORRIJA PARA PROSSEGUIR."
             End Select
       End If
      
       Response = acDataErrContinue
       MsgBox strMSG, vbExclamation, "
                                                                ATENÇÃO!!!"

    Anexe a parte do seu projeto para que possamos identificar exatamente o que ocorre e porque ocorre.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 373
    Registrado : 20/07/2010

    [Resolvido]Mensagem de erro para mascara de entrada. Empty Re: [Resolvido]Mensagem de erro para mascara de entrada.

    Mensagem  OLDRIVG em 27/6/2019, 14:02

    Bom dia, IvanJr.

    Agradeço a atenção.

    Tentei usar o código que vc sugeriu na msg 04, mas não funcionou. Com o código o Formulário trava.

    Resolvi usar o código completo, referenciando no código os campos com mascaras nos Case, mesmo sem necessidade, e vou usar assim.

    Agradecido
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2179
    Registrado : 22/11/2016

    [Resolvido]Mensagem de erro para mascara de entrada. Empty Re: [Resolvido]Mensagem de erro para mascara de entrada.

    Mensagem  DamascenoJr. em 28/6/2019, 00:01

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 19/9/2020, 11:21