Boa noite !
Após buscas neste site nos tópicos:
https://www.maximoaccess.com/t22981-resolvidomascara-de-telefone
https://www.maximoaccess.com/t27580-resolvidoconfigurar-mascara-para-telefone-com-10-ou-11-digitos
https://www.maximoaccess.com/t17392-inserir-mascara-de-telefone-com-8-ou-9-digitos-e-salvar-na-tabela
e outros:
https://pt.stackoverflow.com/questions/21487/como-fazer-uma-mascara-no-ms-access-que-funciona-para-telefones-de-10-ou-11-d%C3%ADgi
http://www.tomasvasquez.com.br/forum/viewtopic.php?t=4544
não consegui resolver o seguinte:
Como configurar em um formulário, um campo para cadastrar o número de telefone de forma que a máscara obedeça a quantidade de números inseridos e se mantenha sempre a cada registro?
Exemplo:
Fone: 8131827212 Com máscara para 10 dígitos: (81)3182-7212
Fone: 81998842018 Com máscara para 11 dígitos: (81)99884-2018
OBS: No caso em questão estou usando o campo 'FonePessoa' (Tipo: Texto. Tamanho: 11) em um subformulário com Máscara de Entrada: \(99") "99999\-9999;;
Na tabela o registro é salvo com 10 ou 11 digitos, mas no subformulário a cada vez que clico em um registro ele muda a máscara do registro anterior ou do próximo, caso seja uma quantidade diferente (10 ou 11 digitos), conforme imagens em anexo.
Observem que:
1) na 1ª imagem o nº do Tipo Celular (11 digitos) está correto, mas o Tipo Comercial (10 digitos) está errado: ( 8)13182-7212, quando o correto seria: (81)3182-7212
2) na 2ª imagem o nº do Tipo Comercial (10 digitos) está correto, mas o Tipo Celular (11 digitos) está errado: 8(19)9884-2018, quando o correto seria: (81)99884-2018
No exemplo acima estou usando a rotina:
Private Sub FonePessoa_AfterUpdate() 'Evento: Após Atualizar
If Len(FonePessoa) <> "" Then
Select Case Len(FonePessoa)
Case 10
Me.FonePessoa.Format = "(@@)@@@@-@@@@"
Case 11
Me.FonePessoa.Format = "(@@)@@@@@-@@@@"
Case Else
MsgBox ("Número Inválido!"), vbCritical, Me.Caption
DoCmd.CancelEvent
Me.FonePessoa = ""
Me.FonePessoa.SetFocus
End Select
End If
End Sub
Como disse, também testei com várias outras rotinas, mas sem sucesso
Após buscas neste site nos tópicos:
https://www.maximoaccess.com/t22981-resolvidomascara-de-telefone
https://www.maximoaccess.com/t27580-resolvidoconfigurar-mascara-para-telefone-com-10-ou-11-digitos
https://www.maximoaccess.com/t17392-inserir-mascara-de-telefone-com-8-ou-9-digitos-e-salvar-na-tabela
e outros:
https://pt.stackoverflow.com/questions/21487/como-fazer-uma-mascara-no-ms-access-que-funciona-para-telefones-de-10-ou-11-d%C3%ADgi
http://www.tomasvasquez.com.br/forum/viewtopic.php?t=4544
não consegui resolver o seguinte:
Como configurar em um formulário, um campo para cadastrar o número de telefone de forma que a máscara obedeça a quantidade de números inseridos e se mantenha sempre a cada registro?
Exemplo:
Fone: 8131827212 Com máscara para 10 dígitos: (81)3182-7212
Fone: 81998842018 Com máscara para 11 dígitos: (81)99884-2018
OBS: No caso em questão estou usando o campo 'FonePessoa' (Tipo: Texto. Tamanho: 11) em um subformulário com Máscara de Entrada: \(99") "99999\-9999;;
Na tabela o registro é salvo com 10 ou 11 digitos, mas no subformulário a cada vez que clico em um registro ele muda a máscara do registro anterior ou do próximo, caso seja uma quantidade diferente (10 ou 11 digitos), conforme imagens em anexo.
Observem que:
1) na 1ª imagem o nº do Tipo Celular (11 digitos) está correto, mas o Tipo Comercial (10 digitos) está errado: ( 8)13182-7212, quando o correto seria: (81)3182-7212
2) na 2ª imagem o nº do Tipo Comercial (10 digitos) está correto, mas o Tipo Celular (11 digitos) está errado: 8(19)9884-2018, quando o correto seria: (81)99884-2018
No exemplo acima estou usando a rotina:
Private Sub FonePessoa_AfterUpdate() 'Evento: Após Atualizar
If Len(FonePessoa) <> "" Then
Select Case Len(FonePessoa)
Case 10
Me.FonePessoa.Format = "(@@)@@@@-@@@@"
Case 11
Me.FonePessoa.Format = "(@@)@@@@@-@@@@"
Case Else
MsgBox ("Número Inválido!"), vbCritical, Me.Caption
DoCmd.CancelEvent
Me.FonePessoa = ""
Me.FonePessoa.SetFocus
End Select
End If
End Sub
Como disse, também testei com várias outras rotinas, mas sem sucesso