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


+2
Fernando Bueno
toyebom
6 participantes

    [Resolvido]Gerar digito controlo BI

    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Gerar digito controlo BI Empty [Resolvido]Gerar digito controlo BI

    Mensagem  toyebom 9/8/2018, 01:08

    Alguém sabe o código ou tem um exemplo para gerar o digito de controlo do antigo Bilhete de Identidade Português?
    Não é para validar é mesmo para gerar.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Fernando Bueno
    Fernando Bueno
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2115
    Registrado : 13/04/2012

    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  Fernando Bueno 9/8/2018, 02:05

    Boa noite;

    Precisaria saber como é feito o calculo do digito verificador mais acredito que não

    fuja muito desse exemplo que postei que gera cnpj válido.


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Resolvido]Gerar digito controlo BI 16rzeq
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3491
    Registrado : 13/12/2016

    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  Alexandre Fim 9/8/2018, 05:17

    Olá toyebom

    Leia este artigo:
    mat.uc.pt/~picado/SistIdent/mistBI.html

    E tem esse fórum tmb.
    portugal-a-programar.pt/forums/topic/1869-o-famoso-numero-do-quadradinho-no-bi/

    boa sorte
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  JPaulo 9/8/2018, 10:17

    Ola a todos;

    Já existe aqui desde 2012;

    https://www.maximoaccess.com/t9344-validar-nif-nib-e-bi-de-portugal#74852

    Usem sempre a busca do fórum por favor.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Gerar digito controlo BI Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Gerar digito controlo BI Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Gerar digito controlo BI Folder_announce_new Instruções SQL como utilizar...
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Gerar digito controlo BI Empty Gerar digito controlo BI

    Mensagem  toyebom 9/8/2018, 17:52

    Obrigado JPaulo já tinha visto esse exemplo mas eu quero é que gere o digito em vez de o validar.
    No teu exemplo tem-se conhecimento do digito mas eu não tenho o digito por isso tenho de o gerar.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  Alexandre Neves 9/8/2018, 22:23

    Boa noite,
    Utilize a função
    Código:
    Function BiDv(NrBI As String) As String
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '  código criado por Alexandre Neves, do Fórum MaximoAccess  '
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim DV As Long
       
        BiDv = format(NrBI, "00000000")
        DV = Mid(BiDv, 8, 1) * 2
        DV = DV + Mid(BiDv, 7, 1) * 3
        DV = DV + Mid(BiDv, 6, 1) * 4
        DV = DV + Mid(BiDv, 5, 1) * 5
        DV = DV + Mid(BiDv, 4, 1) * 6
        DV = DV + Mid(BiDv, 3, 1) * 7
        DV = DV + Mid(BiDv, 2, 1) * 8
        DV = DV + Mid(BiDv, 1, 1) * 9
        Select Case DV Mod 11
        Case 0 Or 1
            BiDv = NrBI & "0"
        Case Else
            BiDv = NrBI & 11 - DV Mod 11
        End Select
    End Function


    .................................................................................
    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
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Gerar digito controlo BI Empty Gerar digito controlo BI

    Mensagem  toyebom 9/8/2018, 23:23

    Desculpa Alexandre, nesta parte do digito sou muito leigo. Consegues-me criar uma bd de exemplo para eu estudar como aplicar o código é que já dei algumas cabeçadas no pc e não descobri como aplicar, sei que tenho de chamar o código mas não sei como.
    Obrigado.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  Alvaro Teixeira 9/8/2018, 23:57

    Olá a todos,

    Nuno, cole o código num módulo.
    Depois talvez seja melhor alterar de:
    Function
    Para:
    Public Function

    Assim fica disponível para os forma, consultas, etc

    Para testar, invocamos a função, tal como fazemos para calcular a idade, passamos a data de nascimento à função.

    Neste caso, invocamos a função, passando o nr. do BI sem o digito verificador.
    Por exemplo crie uma consulta com o nr. do BI
    Depois noutro campo coloque:

    DigitoVerificador: BiDV([NomeCampoComNrBI])

    E teste.

    Abraço
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Gerar digito controlo BI Empty Gerar digito controlo BI

    Mensagem  toyebom 10/8/2018, 10:57

    Alexandre neves, o teu código funciona contudo existe um erro, caso termine em 0 acrescenta um numero ou seja, em vez de ficar 293469350 fica 2934693511, alguma ideia?


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  Alexandre Neves 10/8/2018, 13:47

    Boa tarde,
    Existe o BI 293469350? Julgo que não, que só tem até 8 algarismos e o número é que estará mal. Confirme


    .................................................................................
    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
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  Alvaro Teixeira 10/8/2018, 15:54

    Olá a todos,

    Nuno, efetivamente é conforme o colega Alexandre disse.
    Tive oportunidade de testar e de verificar que realmente está a calcular o dígito como 11.

    Para regularizar a função, onde está:
    Código:
           BiDv = NrBI & 11 - DV Mod 11

    altere por:
    Código:
           BiDv = NrBI & (11 - DV) Mod 11

    Abraçoa todos
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Gerar digito controlo BI Empty Gerar digito controlo BI

    Mensagem  toyebom 10/8/2018, 16:22

    Efetivamente esse numero não existe mas está correto, não é numero de BI mas é um outro que utiliza o mesmo do módulo 11
    O numero 29346935 retorna o numero 11 e deveria retornar o numero 0

    o formato final é que fica com os 9 dígitos juntando o de controlo como resultado final
    Deveria ficar
    293469350
    fica
    2934693511

    Se colocar
    BiDv = NrBI & (11 - DV) Mod 11
    fica
    29346935-11
    ou seja
    Numero       --->29346935
    D. Controlo  --->0

    E fica
    Numero       --->29346935
    D. Controlo  --->11

    O exemplo que o JPaulo dá na mensagem 4 mostra como proceder ao tratamento desse erro mas não sei aplicar. Se der para aplicar ao código do Alexandre Neves será mais fácil já que funciona na perfeição só gera os dois dígitos em vez de 1 em alguns casos.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  Alvaro Teixeira 10/8/2018, 16:46

    Olá Nuno,

    Verifique melhor como está a fazer, veja o teste com o nº 29346935

    [Resolvido]Gerar digito controlo BI 017


    Se pretende através da função apenas obter o dígito de verificação e depois pode concatenar com o nº, efetue a alteração conforme imagem:

    [Resolvido]Gerar digito controlo BI 110

    Abraço
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Gerar digito controlo BI Empty Gerar digito controlo BI

    Mensagem  toyebom 10/8/2018, 18:51

    Continua com o mesmo problema ve:

    Por exemplo o 29346935 deveria retornar 0 e não 11 e o 29346949 também 0 e não 11


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  Alvaro Teixeira 11/8/2018, 12:45

    Olá Nuno,

    O exemplo que disponibilizou, não tem a alteração da mensagem nº 11, veja:

    [Resolvido]Gerar digito controlo BI 018

    Leia com atenção e proceda conforme sugestão.
    Abraço
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Gerar digito controlo BI Empty Gerar digito controlo BI

    Mensagem  toyebom 12/8/2018, 01:54

    Obrigado, já alterei ficou resolvido.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  Alvaro Teixeira 12/8/2018, 15:45

    Olá a todos, obrigado pela contribuição!
    Em especial ao moderador Alexandre Neves que criou o código da solução.

    Nuno, obrigado pelo retorno.

    cheers

    Conteúdo patrocinado


    [Resolvido]Gerar digito controlo BI Empty Re: [Resolvido]Gerar digito controlo BI

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 01:13