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


3 participantes

    [Resolvido]Numeração automática de um campo com base em um campo data

    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Numeração automática de um campo com base em um campo data Empty [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  RodriguesChqao 21/2/2018, 14:04

    Bom dia.
    Tentando resolver velhos problemas

    No meu formulário tenho um campo data no formato 21/02/2018 e outro campo de texto onde insiro números no formato 0001, 0002, 0100, etc
    Gostaria que esse campo tivesse um preenchimento automático com base na data, ou seja  0001....,0100 e assim sucessivamente para o ano 2018.

    Nesse contexto o mestre Fabio Paes já me auxiliou com o seguinte comando:

    Me.meu_campo = Format(Nz(DMax("meu_campo", "Minha_Tabela"), 0) + 1, "0000")

    No entanto, gostaria que a partir do momento que a data mudasse para 01/01/2019 a contagem reiniciasse em 0001 para o campo de texto.

    Já tentei adaptar um modulo do fórum, mas não deu certo porque não considera um campo data digitado pelo usuário.

    Obrigado
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  Noobezinho 21/2/2018, 14:12

    Rodrigues

    Não acha que está faltando algo nesses números?

    Digamos que já tenha os números do ano passado (2017) do 0001 até 0100.

    Quando adicionar o primeiro número do ano 2018 (0001) terá dois números com esse valor.

    O que irá diferenciar eles?

    Aguardo...


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  RodriguesChqao 21/2/2018, 14:20

    Realmente você tem razão existirão números iguais para anos diferentes. Isso não atrapalha o meu trabalho, no entanto não sei se atrapalha para a resolução do que quero fazer.
    O problema que eu vejo em mudar ou inserir algum campo no BD é que ele já tem mais de mil registros.
    Neste caso qual seria a sugestão.
    obrigado
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  Noobezinho 21/2/2018, 17:06

    Aqui está um exemplo de autonumeração com o ano:

    0001/2018

    Ele reinicia a numeração ao começar novo ano.


    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  RodriguesChqao 21/2/2018, 19:33

    Olá.
    Infelizmente esse exemplo é semelhante a um que já vi no fórum. Queria algo mais específico com base no campo data, uma vez que tenho consultas no BD que utilizam o campo data para concatenar um número que junte o "numerosequencial"+"outro campo"+ "o ano do campo data".

    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  CassioFabre 21/2/2018, 20:23

    Boa tarde,

    Já tive um problema semelhante e resolvi da seguinte maneira num sistema que tenho funcionando:

    - Eu tenho um campo na tabela que armazena apenas o ano (anopackinglist) de cada registro.
    - Eu tenho outro campo que armazena apenas o número (numeropackinglist) de cada registro.
    -Tenho também uma função que pega a data de hoje de um site da internet (getDataHoje), isso evita que usuários maliciosos alterem a data do computador afim de fazer registros em datas irreais. No seu caso, vai usar o seu campo de data do formulário.
    - tblPackingList é a tabela em si.

    Código:
    If DCount("packinglist", "tblPackingList") = 0 Then
                txtPackingList = "001/" & Year(getDataHoje)
            Else
                If DMax("anopackinglist", "tblPackingList") <> Year(getDataHoje) Then
                    txtPackingList = "001/" & Year(getDataHoje)
                Else
                    If DMax("numeropackinglist", "tblPackingList", "anopackinglist = " & Year(getDataHoje) & "") < 10 Then
                        txtPackingList = "00" & DMax("numeropackinglist", "tblPackingList", "anopackinglist = " & Year(getDataHoje) & "") + 1 & "/" & Year(getDataHoje)
                    ElseIf DMax("numeropackinglist", "tblPackingList", "anopackinglist = " & Year(getDataHoje) & "") < 100 Then
                        txtPackingList = "0" & DMax("numeropackinglist", "tblPackingList", "anopackinglist = " & Year(getDataHoje) & "") + 1 & "/" & Year(getDataHoje)
                    Else
                        txtPackingList = DMax("numeropackinglist", "tblPackingList", "anopackinglist = " & Year(getDataHoje) & "") + 1 & "/" & Year(getDataHoje)
                    End If
                End If
            End If

    Por fim, basta preencher o campo que vai receber o seu código (no meu caso é o campo txtPackingList) com o resultado da operação. Eu fiz esse código há muito tempo, quando ainda estava iniciando meus estudos em VBA. Então, provavelmente há maneiras melhores de fazer do ponto de vista do desempenho. Mas ao menos para se ter uma ideia, vai funcionar.

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  Noobezinho 21/2/2018, 22:56

    Eu apenas deu um norte, ou seja,

    baseado no exemplo, poderia fazer o teu código.

    O mesmo está fazendo o Cassio.

    Dificilmente conseguirá um código pronto.



    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  RodriguesChqao 22/2/2018, 16:44

    Boa tarde Cassio.

    Vou tentar adaptar o código porque não entendo de VBA, mas tenho algumas dúvidas

    No código o campo "packinglist" armazena o que?

    No meu formulário o campo que irá armazenar o número se Chama "Nr_Credencial" que vem de uma tabela Tbl_Credencial que possui um campo Nr_Credencial.

    Tentei adptar o código assim:

    If DCount("packinglist", "Tbl_Credencial") = 0 Then
               txtPackingList = "001/" & Year(Dt_Exp)
           Else
               If DMax("ano", "Tbl_Credencial") <> Year(Dt_Exp) Then
                   txtPackingList = "001/" & Year(Dt_Exp)
               Else
                   If DMax("Nr_Credencial", "Tbl_Credencial", "ano = " & Year(Dt_Exp) & "") < 10 Then
                       txtPackingList = "00" & DMax("Nr_Credencial", "Tbl_Credencial", "ano = " & Year(Dt_Exp) & "") + 1 & "/" & Year(Dt_Exp)
                   ElseIf DMax("Nr_Credencial", "Tbl_Credencial", "ano = " & Year(Dt_Exp) & "") < 100 Then
                       txtPackingList = "0" & DMax("Nr_Credencial", "Tbl_Credencial", "ano = " & Year(Dt_Exp) & "") + 1 & "/" & Year(Dt_Exp)
                   Else
                       txtPackingList = DMax("Nr_Credencial", "Tbl_Credencial", "ano = " & Year(Dt_Exp) & "") + 1 & "/" & Year(Dt_Exp)
                   End If
               End If
           End If

    Outra dúvida é em qual evento coloco o código no campo Nr_Credencial

    Agradeço a atenção.
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  CassioFabre 22/2/2018, 17:02

    Boa tarde,

    O campo "packinglist" no meu caso é o número de um documento chamado Packing List. Mas eu usei aqui apenas para contar os registros da tabela, voce pode usar qualquer campo que voce tenha na sua tabela. O seu campo do formulário que armazenará o número do código, voce vai usar o no lugar do campo "txtPackingList", pois no meu caso é esse que armazena o código que eu crio aqui.

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  RodriguesChqao 22/2/2018, 19:07

    Boa tarde Cassio.

    Tentei adaptar o código para o meu BD e funcionou parcialmente, conforme exemplo anexo

    Campo que vai armazenar o número "Nr_Credencial"

    O código está inserindo o número 0001/2018 no Campo Nr_Credencial ao receber foco, no entanto quando cadastro um novo registro o Nr_Credencial deveria somar +1 ou seja 0002/2018. Não sei onde estou errando porque o campo é atualizado com o mesmo valor, ou seja 0001/2018.

    Obrigado pela atenção
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  Noobezinho 22/2/2018, 22:02

    Rodrigues

    Substitua o código por esse:
    Código:

    If DCount("Nr_Credencial ", "Tbl_Credencial") = 0 Then
       Nr_Credencial = Format("1", "0000") & "/" & Year(Date)
    Else
       If Right(DMax("[Nr_Credencial]", "Tbl_Credencial", "Right([Nr_Credencial],4)= " & Year(Date)), 4) <> Year(Date) Then
          'aqui é a virada de ano, volta para 0001/novo ano.
          Nr_Credencial = Format("1", "0000") & "/" & Year(Date)
       Else
         Nr_Credencial = Format(Left(DMax("[Nr_Credencial]", "Tbl_Credencial", "Right([Nr_Credencial],4)= " & Year(Date)), 4) + 1, "0000") & "/" & Year(Date)
       End If
    End If
    End Sub

    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  RodriguesChqao 23/2/2018, 00:09

    Boa noite Noobezinho, desde já agradeço a disponibilidade

    Substitui o código, mas não funcionou como desejado.

    Inseri um primeiro registro no formulário Frm_Credencial com data no campo Dt_Exp_Credencial 22/02/2018 e o campo Nr_Credencial foi atualizado para 0001/2018, tudo beleza

    Inseri um segundo registro no formulário Frm_Credencial com data no campo Dt_Exp_Credencial 22/02/2018 e o campo Nr_Credencial continuou 0001/2018, deveria ter sido atualizado para 0002/2018

    Inseri um terceiro registro no formulário Frm_Credencial com data no campo Dt_Exp_Credencial 22/02/2019 e o campo Nr_Credencial continuou 0001/2018, deveria ter sido atualizado para 0001/2019.

    Não consegui inserir as imagens porque não aparece a ferramenta para hospedar imagem para mim, mas estou encaminhado novamente o BD.

    Na verdade o campo deve ser numerado e atualizado com base na data cadastrada pelo usuário no campo Dt_Exp

    Como disse, agradeço a disponibilidade em ajudar o leigo.
    obrigado
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  Noobezinho 23/2/2018, 00:47

    Substitua essa linha ou adicione a parte em vermelho

    If Eval(Right(DMax("[Nr_Credencial]", "Tbl_Credencial", "Right([Nr_Credencial],4)= " & Year(Date)), 4)) <> Year(Date) Then

    Não esqueça o parenteses em vermelho entre o 4 e o sinal de =


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    RodriguesChqao
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 118
    Registrado : 31/05/2016

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  RodriguesChqao 23/2/2018, 12:19

    Valeu Noobezinho funcionou perfeitamente.

    Muito obrigado!
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  Noobezinho 23/2/2018, 12:26

    Ótimo!

    Valeu pelo retorno!

    Boa sorte!


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.

    Conteúdo patrocinado


    [Resolvido]Numeração automática de um campo com base em um campo data Empty Re: [Resolvido]Numeração automática de um campo com base em um campo data

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 6/12/2024, 16:18