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]Mensagem de erro para mascara de entrada.

    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 372
    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.
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

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

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

    Mensagem  IvanJr. 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 : 372
    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
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

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

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

    Mensagem  IvanJr. 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 : 372
    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
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

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

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

    Mensagem  IvanJr. 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.

    Conteúdo patrocinado

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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2019, 00:26