MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

4 participantes

    [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo?

    avatar
    Maribeiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2
    Registrado : 07/06/2012

    [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo? Empty Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo?

    Mensagem  Maribeiro 7/6/2012, 18:54

    Olá companheiros, estou a escrever uma aplicação em ACCESS 2000 para fazer a gestão de associados, e queria incluir a funcionalidade de validar se um numero de contribuinte está correcto e o mesmo se passa para o NIB, Desde já os meus agradecimentos.
    Manuel Ribeiro
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo? Empty Re: [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo?

    Mensagem  criquio 7/6/2012, 19:09

    Olá, seja bem vindo ao fórum!

    Você conhece os algoritmos de validação? Se souber poste para que outros membros de fora de Portugal possam avaliar tambem.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8251
    Registrado : 05/11/2009

    [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo? Empty Re: [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo?

    Mensagem  Alexandre Neves 8/6/2012, 15:36

    Boa tarde, Manuel, e bem-vindo ao fórum

    Funções que encontrei não sei onde e não sei se funcionam:
    Public Function ValidoNIB(ByVal NIB As String) As Integer

    Dim s As Long
    Dim I, I2, checkDigit As Integer
    Dim nib_auxiliar As String
    Dim Tabela_pesos(31) As Byte
    Dim Tabela_bancos(40) As Integer
    Dim dblDivisao As Double

    '1 = NIB INVÁLIDO" 'check digit inválido
    '2 = comprimento do NIB INVÁLIDO"
    '3 = banco do NIB INVÁLIDO"

    ValidoNIB = 1

    Tabela_pesos(1) = 85
    Tabela_pesos(2) = 57
    Tabela_pesos(3) = 93
    Tabela_pesos(4) = 19
    Tabela_pesos(5) = 31
    Tabela_pesos(6) = 71
    Tabela_pesos(7) = 75
    Tabela_pesos(Cool = 56
    Tabela_pesos(9) = 25
    Tabela_pesos(10) = 51
    Tabela_pesos(11) = 73
    Tabela_pesos(12) = 17
    Tabela_pesos(13) = 89
    Tabela_pesos(14) = 38
    Tabela_pesos(15) = 62
    Tabela_pesos(16) = 45
    Tabela_pesos(17) = 53
    Tabela_pesos(18) = 15
    Tabela_pesos(19) = 50
    Tabela_pesos(20) = 5
    Tabela_pesos(21) = 49
    Tabela_pesos(22) = 34
    Tabela_pesos(23) = 81
    Tabela_pesos(24) = 76
    Tabela_pesos(25) = 27
    Tabela_pesos(26) = 90
    Tabela_pesos(27) = 9
    Tabela_pesos(28) = 30
    Tabela_pesos(29) = 3
    Tabela_pesos(30) = 10
    Tabela_pesos(31) = 1

    Tabela_bancos(1) = 7 ' deve acrescentar os códigos de banco que conheça para validar o banco.
    Tabela_bancos(2) = 10
    Tabela_bancos(3) = 12
    Tabela_bancos(4) = 18
    Tabela_bancos(5) = 32
    Tabela_bancos(6) = 33
    Tabela_bancos(7) = 35
    Tabela_bancos(Cool = 36
    Tabela_bancos(9) = 43

    nib_auxiliar = 0
    nib_auxiliar = NIB
    I = 1
    checkDigit = 0

    If nib_auxiliar < 1E+17 Or nib_auxiliar > 1E+21 Then

    ValidoNIB = 2
    Exit Function
    End If

    s = 0

    For I2 = 1 To 9
    If Mid(nib_auxiliar, 1, (4)) = Tabela_bancos(I2) Then
    s = 1
    End If
    Next

    If s = 0 Then
    ValidoNIB = 3
    Exit Function
    End If

    For I = I To 19
    checkDigit = checkDigit + (Mid(nib_auxiliar, I, (1)) * Tabela_pesos(I + 10))
    Next

    dblDivisao = checkDigit / 97
    s = Int(dblDivisao) * 97
    checkDigit = checkDigit - s
    checkDigit = 98 - checkDigit

    If (checkDigit = Mid(nib_auxiliar, 20, (2))) Then
    ValidoNIB = 0
    End If
    End Function


    Public Function ValidoContribuinte(ByVal contrib As String) As Boolean
    'validação do NIF

    Dim s As Long
    Dim I, checkDigit As Integer
    Dim dblDivisao As Double

    ValidoContribuinte = False
    checkDigit = 0

    If contrib < 10000000 Or contrib > 999999999 Then

    Exit Function
    End If

    If (Mid(contrib, 1, (1)) = 1 Or Mid(contrib, 1, (1)) = 2 Or Mid(contrib, 1, (1)) = 5 Or Mid(contrib, 1, (1)) = 6 Or Mid(contrib, 1, (1)) = 8 Or Mid(contrib, 1, (1)) = 9) Then
    Else
    Exit Function
    End If

    For I = 1 To 8
    checkDigit = checkDigit + (Mid(contrib, I, (1)) * (10 - I))
    Next

    dblDivisao = checkDigit / 11
    s = Int(dblDivisao) * 11
    checkDigit = checkDigit - s

    If (checkDigit = 0 Or checkDigit = 1) Then

    checkDigit = 0
    Else
    checkDigit = 11 - checkDigit
    End If

    If (checkDigit = Mid(contrib, 9, (1))) Then
    ValidoContribuinte = True
    End If
    End Function
    avatar
    Maribeiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2
    Registrado : 07/06/2012

    [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo? Empty Rotina de validação do NIF - Validada e funcional

    Mensagem  Maribeiro 15/6/2012, 21:44

    Muito obrigado pela sua colaboração.
    Os meus agradecimentos.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo? Empty Re: [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo?

    Mensagem  criquio 15/6/2012, 21:52

    Manuel, resolveu a questão? Se sim, pedimos a gentileza de clicar no botão Resolvido, logo acima e à direita do botão de Enviar a mensagem aqui.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Mc Feba
    Mc Feba
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 30/05/2011

    [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo? Empty Re: [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo?

    Mensagem  Mc Feba 15/6/2012, 22:44

    Boa Amigão,

    Veja este exemplos de validações, inclusive no NIF e NIB e mais alguns de portugal.

    http://www.esnips.com/displayimage.php?album=322152&pid=2790346#top_display_media

    Abraços,


    .................................................................................
    Alexandro de Andrade
    SAP consultant
    VBA Developer
    http://www.esnips.com/web/alexandroandrade-Access
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8251
    Registrado : 05/11/2009

    [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo? Empty Re: [Resolvido]Validação de NIB e de NIF de Portugal, alguem pode ajudar apresentando o codigo?

    Mensagem  Alexandre Neves 3/9/2012, 10:14

    Não tenho havido continuidade. O assunto passa a Resolvido.


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

      Data/hora atual: 28/11/2022, 02:46