Boa tarde a todos, encontrei o código abaixo (com as devidas explicações de como implementa-lo) na internet para trabalhar com duas mascaras para o campo CPFCNPJ.
Para que o formulário exiba o campo CGCCPF formatado de acordo com o tipo (CNPJ ou CPF), devemos utilizar um procedimento no evento No Atual (onCurrent) do formulário que verifique o comprimento do campo e aplique a máscara correta. Siga os passos abaixo:
Abra o formulário no modo estrutura e visualize o seu módulo.
Insira o seguinte procedimento para o evento No Atual do formulário:
Private Sub Form_Current()
On Error Resume Next
Select Case Len([CGCCPF])
Case 14 ' É CNPJ.
Me![CGCCPF].InputMask = "00\.000\.000\/0000\-00"
Case 11 ' É CPF.
Me![CGCCPF].InputMask = "000\.000\.000\-00"
Case Else
' O valor do campo não é CNPJ nem CPF.
Me![CGCCPF].InputMask = ""
End Select
End Sub
Ocorre que ao testar o código verifiquei o seguinte:
1. permite gravar sequencia menor que 11 caracteres sem mascara;
2. Não informa ao usuário que a sequencia não é igual ao CPF ou CGC;
3. Não efetua a contagem dos dígitos verificadores dos CPF ou CGC;
4. Se tiver mais de 11 caracteres na sequencia e menos de 14, também grava sem a mascara e não informa ao usuário o erro.
Sou iniciante no assunto e gostaria da ajuda dos amigos do Forum, segue anexo um arquivo de teste.
(TFA) obrigado
OSVALDO FRANCISCO PINTO
mictmr
Para que o formulário exiba o campo CGCCPF formatado de acordo com o tipo (CNPJ ou CPF), devemos utilizar um procedimento no evento No Atual (onCurrent) do formulário que verifique o comprimento do campo e aplique a máscara correta. Siga os passos abaixo:
Abra o formulário no modo estrutura e visualize o seu módulo.
Insira o seguinte procedimento para o evento No Atual do formulário:
Private Sub Form_Current()
On Error Resume Next
Select Case Len([CGCCPF])
Case 14 ' É CNPJ.
Me![CGCCPF].InputMask = "00\.000\.000\/0000\-00"
Case 11 ' É CPF.
Me![CGCCPF].InputMask = "000\.000\.000\-00"
Case Else
' O valor do campo não é CNPJ nem CPF.
Me![CGCCPF].InputMask = ""
End Select
End Sub
Ocorre que ao testar o código verifiquei o seguinte:
1. permite gravar sequencia menor que 11 caracteres sem mascara;
2. Não informa ao usuário que a sequencia não é igual ao CPF ou CGC;
3. Não efetua a contagem dos dígitos verificadores dos CPF ou CGC;
4. Se tiver mais de 11 caracteres na sequencia e menos de 14, também grava sem a mascara e não informa ao usuário o erro.
Sou iniciante no assunto e gostaria da ajuda dos amigos do Forum, segue anexo um arquivo de teste.
(TFA) obrigado
OSVALDO FRANCISCO PINTO
mictmr