[resolvido]Pequeno impasse com a Função Montatel

Moderador: Avelino Sampaio

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

[resolvido]Pequeno impasse com a Função Montatel

Mensagempor Moglynho » 23 Jun 2016, 18:37

Grandioso Mestre Sr. Avelino, com o uso do banco de dados pude perceber um pequeno impasse na função que o Sr me indicou, que por sinal funcionou muito bem salvo o impasse.

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


Um problema anda acontecendo:

Quando depois de atualizado, se voltar ao campo e apagar selecionando o texto e procedendo com a tecla delete este dá um aviso: Erro em tempo de execução '94'
Uso de 'Null' inválido.

e me dá as opções: Fim ou Depurar

Só dá esse erro quando apagado com a tecla delete, quando pelo comando dos botões tudo fica certo.

Existe algum reparo para isso?
Desde já, muito obrigado pela preciosa atenção.
Última edição por Moglynho em 23 Jun 2016, 20:36, editado 1 vez 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: Pequeno impasse com a Função Montatel

Mensagempor Avelino Sampaio » 23 Jun 2016, 18:51

Moglynho,

Abra a estrutura da tabela cliente. Troque a propriedade "Permite comprimento zero" para SIM em todos os campos de telefone (te1,te2,..)

Acrescente a linha em vermelho, na função:

Código:
Private Function fncMontaTel(Num As Variant) As String
on error resume next
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: Pequeno impasse com a Função Montatel

Mensagempor Moglynho » 23 Jun 2016, 19:50

:? Funcionou direitinho.
Mas pude notar que, ao apagar com a tecla delete o campo não fica com o valor "Null", não é? (O que não tem problema algum.)
Porque eu havia criado o botão para limpar o campo e com um aviso caso fosse clicado com o campo já em branco, e agora, ele procede mesmo com o campo em branco, exceto quando é limpo pelo próprio botão. ( O que também não é problema) Mas só para fins de informações. :)

Veja a função do botão apagar:

Código:
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
Exit Sub
Sair:
MsgBox "O Campo já está vazio!."
End If


Se for apagado pela tecla delete e depois clicar no botão apagar ele pergunta se deseja excluir o telefone (Mesmo com o campo vazio pela tecla delete)
Se for apagado pelo botão "Apagar Número" e depois clicar outra vez, ele dá o aviso esperado "O campo já esta vazio!"

Como já afirmei, não vejo problema. Só para informar como ficou.

Obrigado. Abraços.

:D ;)

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

Re: Pequeno impasse com a Função Montatel

Mensagempor Avelino Sampaio » 23 Jun 2016, 20:08

Moglynho,

altere para:

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


Nota: Coloque os código aqui no fórum entre as tags [code ] e [ /code] ou [ codebox] e [/codebox ]

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: Pequeno impasse com a Função Montatel

Mensagempor Moglynho » 23 Jun 2016, 20:23

Eu havia colocado assim:

Código:
If IsNull(Me![Tel1]) Then GoTo Sair
If [Tel1] = "" Then GoTo Sair
If MsgBox("Deseja excluir o telefone 1 ?", vbQuestion + vbYesNo, "Confirmação") = vbYes Then
Me!Tel1 = Null
Me!Tel1.SetFocus
Exit Sub
Sair:
MsgBox "O Campo já está vazio!."
End If


Será que pode?
Funcionou, mas não sei se pode ficar assim.

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

Re: Pequeno impasse com a Função Montatel

Mensagempor Avelino Sampaio » 23 Jun 2016, 20:31

Pode mas fica melhor assim:

If IsNull(Me!Tel1) OR me!tel1 ="" Then GoTo Sair
...

Sucesso!
==================================================
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: Pequeno impasse com a Função Montatel

Mensagempor Moglynho » 23 Jun 2016, 20:35

:D :D :D
Obrigado meu Mestre.

:D :D :D

Perguntei lá sobre o Kit que eu quero comprar seu mas nao sei se devo esperar pela atualização prevista para Julho 2016.

Conforme for, já garantirei o meu. Abraços.

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 4 visitantes