AJUDA COM APLICACAO DE VALIDACAO NIF
Boa noite a esta grande comunidade.
Estou com um pequeno problema numa aplicação que estou a desenvolver e preciso de ajuda a ver se fica a funcar.
O problema está unicamente em chamar a mensagem de erro quando o número está errado, ou então começa por 0,3,4 ou 7.
Passo explicar melhor: estou a criar um validador de NIF(Número de Contribuinte aqui em Portugal, equivalente ao CPF no Brasil).
O meu código está assim:
A tela do programa:
O problema está mesmo no final .... a mensagem de erro teima em não aparecer
Já tentei várias localizações para ela, enfim um pouco de tudo...
Obrigado desde já a quem me possa ilucidar sobre este problema.
Estou com um pequeno problema numa aplicação que estou a desenvolver e preciso de ajuda a ver se fica a funcar.
O problema está unicamente em chamar a mensagem de erro quando o número está errado, ou então começa por 0,3,4 ou 7.
Passo explicar melhor: estou a criar um validador de NIF(Número de Contribuinte aqui em Portugal, equivalente ao CPF no Brasil).
O meu código está assim:
Imports System.IO
Imports System.Text
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim s As String = TextBox1.Text
Dim c As Char
Dim i, checkDigit As Integer
Dim res As MsgBoxResult
If (s.Length = 9) Then
c = s.Chars(0)
If (c.Equals([Ô]1[Ô]c) Or c.Equals([Ô]2[Ô]c) Or c.Equals([Ô]5[Ô]c) Or c.Equals([Ô]6[Ô]c) Or c.Equals([Ô]8[Ô]c) Or c.Equals([Ô]9[Ô]c)) Then
checkDigit = Val(c) * 9
For i = 2 To 8
checkDigit += Val(s.Chars(i - 1)) * (10 - i)
Next
checkDigit = 11 - (checkDigit Mod 11)
If (checkDigit >= 10) Then checkDigit = 0
If (checkDigit = Val(s.Chars(8))) Then
MessageBox.Show([Ô]Número NIF válido[Ô], [Ô]test vat[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
If TextBox1.Text.Equals([Ô]0[Ô]c) Then
MessageBox.Show([Ô]Número NIF Inválido[Ô], [Ô]teste vat[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End If
End If
End If
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
TextBox1.MaxLength = 9
TextBox1.Focus()
End Sub
A tela do programa:
O problema está mesmo no final .... a mensagem de erro teima em não aparecer
Já tentei várias localizações para ela, enfim um pouco de tudo...
Obrigado desde já a quem me possa ilucidar sobre este problema.
Caro Cracker, bom dia.
E se você mudar o if TextBox1.Text.Equals([Ô]0[Ô]c) then para if c.Equals([Ô]0[Ô]c) then
Att,
Se não ajudar, tente postar um projeto semelhante em anexo para podermos executar e analisar.
Lucas
E se você mudar o if TextBox1.Text.Equals([Ô]0[Ô]c) then para if c.Equals([Ô]0[Ô]c) then
Att,
Se não ajudar, tente postar um projeto semelhante em anexo para podermos executar e analisar.
Lucas
Caro CRACKER
Não pode colocar um IF dentro de outro pois sua lógica está errada, para utilizar o IF dentro de outro para cada if tem que ter um else com a msg de erro
Boa sorte
Não pode colocar um IF dentro de outro pois sua lógica está errada, para utilizar o IF dentro de outro para cada if tem que ter um else com a msg de erro
Boa sorte
Muito obrigado pelo vosso rápido esclarecimento. vou então alterar o código e depois digo algo.
Pois bem, após muito tentar, pesquisar infos na net e de ler alguns tópicos aqui pelo forum....
Finalmente consegui colocar a aplicação a funcionar como eu pretendi a e ainda adicionei um help nela.
Aqui fica o ficheiro com o codigo fonte completo e o executável dela.
Obrigado a todos. Mas ainda vou tentar melhora-la a fim de dar erro quando um número não permitido, letra ou outro caracter não permitido fôr escrito na textbox.
As instruções de uso da aplicação estão escritas no botão Help: basta clicar nele e depois no botão ou na caixa de texto.
Aqui fica a aplicação em anexo.
Finalmente consegui colocar a aplicação a funcionar como eu pretendi a e ainda adicionei um help nela.
Aqui fica o ficheiro com o codigo fonte completo e o executável dela.
Obrigado a todos. Mas ainda vou tentar melhora-la a fim de dar erro quando um número não permitido, letra ou outro caracter não permitido fôr escrito na textbox.
As instruções de uso da aplicação estão escritas no botão Help: basta clicar nele e depois no botão ou na caixa de texto.
Aqui fica a aplicação em anexo.
Caro CRACKER
Dê uma olhada nessa pequena modificação que fiz no seu projeto
Boa Sorte
Dê uma olhada nessa pequena modificação que fiz no seu projeto
Boa Sorte
Caro AJSO
Acabei de testar a aua nova versão e era exactamente tudo o que eu pretendia implementar nela!!! Valeu pela ajuda.
Ficou demais. Muito obrigado pela ajuda.
Citação::
Caro AJSO
Acabei de testar a aua nova versão e era exactamente tudo o que eu pretendia implementar nela!!! Valeu pela ajuda.
Ficou demais. Muito obrigado pela ajuda.
Blz iss ai qq coisa
Só não esqueca de pontuar.................
Boa sorte
Tópico encerrado , respostas não são mais permitidas