[resolvido] Botão apagar campo / formatação de numero de telefone

Moderador: Avelino Sampaio

Avatar do usuário
Moglynho
Mensagens: 31
Registrado em: 01 Mai 2016, 22:24

[resolvido] Botão apagar campo / formatação de numero de telefone

Mensagempor Moglynho » 15 Jun 2016, 20:23

Eis-me aqui outra vez nesse sagrado Fórum.
Ainda não aprendi a lidar com as páginas nos formulários.

Esta ajuda até me parece ser simples, mas ja tentei de tudo e não cheguei a lugar algum.

Neste formulário de exemplo eu preciso criar um botão para que, quando clicado ele apague o que estiver dentro do campo.
Exemplo: Botão 01 apaga campo Tel 1, Botão 02 apaga campo tel 2 e assim por diante.

Outro problema que tenho é com a formatação destes campos (Campo Tel) os dados que digito quando telefone fixo é (exemplo): 1334552253, neste caso o código da área é 13 e o telefone é 3455-2253, o campo deveria formatar como (13)3455-2253 (note que os numeros de telefone são 08 digitos. Acontece que quando for um celular eu digito: 13998765432 neste caso o código da área é 13 e o telefone 9 9876-5432 e precisa estar formatado
assim: (13)9 9876-5432 (note que o numero de telefone são 9 digitos)

Como devo atribuir a formatação para que seja correta quando eu digitar seguidamente

Segue anexo formulário de exemplo

Socorro Sr. Avelino. :cry: :geek:
Você deve estar registrado e autenticado para ter acesso ao arquivo anexo.
Última edição por Moglynho em 18 Jun 2016, 02:55, editado 2 vezes no total.

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
Avelino Sampaio
Mensagens: 1895
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Botão apagar campo / formatação de numero de telefone

Mensagempor Avelino Sampaio » 16 Jun 2016, 12:20

Olá!

segue o exemplo com acrescimo dos botões.

Nota: NO botão do tel1 eu acrescentei uma pergunta para exlcluir, conforme código abaixo:

Código:
Private Sub bt1_Click()
If MsgBox("Deseja excluir o telefone 1 ?", vbQuestion + vbYesNo, "Confirmação") = vbYes Then
Me!Tel1 = Null
Me!Tel1.SetFocus
End If
End Sub


Quanto as máscaras, sugiro deixar sem, devido a essas variações. Para complicar, e se houver ramal ? (13) 7777-8888 R128. Ou utilize a máscara que usei no campo tel5:

\(99") "9\ 0000\-0000;0

Observe que inseri no final ;0 que faz com a máscara seja gravada no campo da tabela.

Nota: Aumente o tamanho dos campos para poder comportar a gravação da máscara e do ramal.

Aguardamos
Você deve estar registrado e autenticado para ter acesso ao arquivo anexo.
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
Moglynho
Mensagens: 31
Registrado em: 01 Mai 2016, 22:24

Re: Botão apagar campo / formatação de numero de telefone

Mensagempor Moglynho » 17 Jun 2016, 16:34

Entendi agora(graças a sua conclusão)quanto ao comando correto para o botão "Apagar" eu estava colocando assim:

Tel1.Value = ""

Tentei também: Tel1 = ""
Mas nada dava certo. Pois o valor seria então Null :lol:

Agora ficou perfeito, Ainda acrescentei:

If IsNull(Me![Tel1]) Then GoTo Sair
If MsgBox("Deseja excluir o telefone 1 ?", vbQuestion + vbYesNo, "Confirmação") = vbYes Then
Me!Tel1 = Null
Me!Tel1.SetFocus
Sair:
End If

Dessa forma, se não houver nada a apagar então nada acontece.

Mas, quanto a formatação do campo, ainda não consegui chegar a uma conclusão, pois quando eu digito exatamente 13997797421 ou 1334552211 o numero não formata corretamente separando os dois primeiros digitos dentro de parênteses para identificar como código da área e o restante como numero de telefone sendo os 4 finais sempre antes do - ou seja: (13)9 9779-7421 e (13)3455-2211. Não me preocupo com o ramal porque, se houver, eu crio um campo para digitar ele. O Problema é que estes numeros me Vem pelo sistema de binagem, ou seja, vem com o codigo de área e o numero tudo junto e ao enviar para este campo (tel1, tel2 ou tel3) eles precisam cair lá e formatar. :cry:

Avatar do usuário
Avelino Sampaio
Mensagens: 1895
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Botão apagar campo / formatação de numero de telefone

Mensagempor Avelino Sampaio » 17 Jun 2016, 17:22

Entendi agora.

- Mantenha os campos dos telefones sem qualquer formatação.
- Abra o VBA do formulário e acrescente no final a seguinte função:

Código:
Private Function fncMontaTel(Num As Variant) As String
Select Case Len(Num)
Case 10 'telefone fixo
fncMontaTel = "(" & Left(Num, 2) & ") " & Mid(Num, 3, 4) & "-" & Right(Num, 4)
Case 11 ' telefone celular
fncMontaTel = "(" & Left(Num, 2) & ") " & Mid(Num, 3, 1) & " " & Mid(Num, 4, 4) & "-" & Right(Num, 4)
End Select
End Function


No envento ao clicar dos botões, acrescente a função. Exemplo do primeiro botão:

Código:
Private Sub Comando139_Click()
If IsNull(Me![Tel1]) Then [Tel1] = fncMontaTel(Forms![Linha 01]![Texto2])
DoCmd.RunCommand acCmdRefresh
End Sub


Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
Moglynho
Mensagens: 31
Registrado em: 01 Mai 2016, 22:24

Re: Botão apagar campo / formatação de numero de telefone

Mensagempor Moglynho » 17 Jun 2016, 20:27

:shock: Deu certinho quando captura o numero, mas e quando for digitado no próprio campo do tel1, como faço? :?

Avatar do usuário
Avelino Sampaio
Mensagens: 1895
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Botão apagar campo / formatação de numero de telefone

Mensagempor Avelino Sampaio » 17 Jun 2016, 20:40

Se entrar somente com números, vc pode usar o evento Após atualizar do campo tel1. Exemplo:

Código:
Private Sub Tel1_AfterUpdate()
Me!Tel1 = fncMontaTel(Me!Tel1)
End Sub


Altere a função fncMontaTel para:

Código:
Private Function fncMontaTel(Num As Variant) As String
Select Case Len(Num)
Case 10 'telefone fixo
fncMontaTel = "(" & Left(Num, 2) & ") " & Mid(Num, 3, 4) & "-" & Right(Num, 4)
Case 11 ' telefone celular
fncMontaTel = "(" & Left(Num, 2) & ") " & Mid(Num, 3, 1) & " " & Mid(Num, 4, 4) & "-" & Right(Num, 4)
Case else
fncMontaTel = num
End Select
End Function


Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
Moglynho
Mensagens: 31
Registrado em: 01 Mai 2016, 22:24

Re: Botão apagar campo / formatação de numero de telefone

Mensagempor Moglynho » 18 Jun 2016, 02:52

Rapaz!!!!!!! :o ;) :) Para o Sr Não existe limites no Access, hein?

Tudo perfeito e como o esperado!!!

Muito Obrigado novamente. :lol: :lol: :lol:

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.



Voltar para “Formulários”

Quem está online

Usuários neste fórum: Nenhum usuário registrado e 2 visitantes