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 participantes

    [Resolvido]Numeração com Ano seguido de número

    avatar
    marceloslcosta
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 16/05/2018

    [Resolvido]Numeração com Ano seguido de número Empty [Resolvido]Numeração com Ano seguido de número

    Mensagem  marceloslcosta 22/7/2021, 22:07

    Olá pessoal. Seguindo o forum por anos e interagindo pela primeira vez. Tenho um campo em uma tabela chamado de código. Os valores nele armazenados possuem o seguinte formato YYYY/0000, ou seja o ano corrente seguido por "/" e um número de quatro dígitos.
    Quero automatizar seu preenchimento colocando automaticamente. Gostaria de criar uma função que leia o campo "código" mais recente em uma tabela chamada "tblTeste" e incremente de um seu valor ou, se for após uma mudança de ano, reinicie a numeração com o novo ano. Seria algo assim:

    2021/0001
    2021/0002
    ...
    2021/0789
    2022/0001
    2022/0002
    ...

    Alguém poderia me dar alguma dica?

    Alterie esse código sugerido por JPaulo mas ao criar um novo registro, o valor do campo código é sempre o ano seguido por 0001 (Não incrementa o valor). AnoNumeracao() como valor padrão
    Código:
    Public Function AnoNumeracao() As String
    'By JPaulo@2009
    Dim code(1) As Integer, temp As Integer
    code(1) = Nz(DMax("Left([código],4)=Year(Date())", "tblTeste", "Right([Código],4)"), 0)
        For i = 1 To UBound(code)
            If temp < code(i) Then temp = code(i)
        Next
    AnoNumeracao = Year(Date) & "/" & Format(temp + 1, "0000")
    End Function
    Anexos
    [Resolvido]Numeração com Ano seguido de número AttachmentTeste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (58 Kb) Baixado 12 vez(es)
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3606
    Registrado : 21/04/2011

    [Resolvido]Numeração com Ano seguido de número Empty Re: [Resolvido]Numeração com Ano seguido de número

    Mensagem  Marcelo David 23/7/2021, 15:11

    Bom dia!
    Em qual momento você que esse incremento ocorra?
    Tipo, quando (em que evento) que será detectado que o ano mudou?


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Numeração com Ano seguido de número Marcel11
    avatar
    marceloslcosta
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 16/05/2018

    [Resolvido]Numeração com Ano seguido de número Empty Re: [Resolvido]Numeração com Ano seguido de número

    Mensagem  marceloslcosta 23/7/2021, 16:42

    Boa tarde Marcelo. Eu gostaria que, assim que carregar o formulário, já traga consigo o novo valor (que seja o valor padrão)


    Última edição por marceloslcosta em 23/7/2021, 20:01, editado 1 vez(es)
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3606
    Registrado : 21/04/2011

    [Resolvido]Numeração com Ano seguido de número Empty Re: [Resolvido]Numeração com Ano seguido de número

    Mensagem  Marcelo David 23/7/2021, 18:42

    Quando for inserir um novo registro, é isso?


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Numeração com Ano seguido de número Marcel11
    avatar
    marceloslcosta
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 16/05/2018

    [Resolvido]Numeração com Ano seguido de número Empty Re: [Resolvido]Numeração com Ano seguido de número

    Mensagem  marceloslcosta 23/7/2021, 20:02

    Isso.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3606
    Registrado : 21/04/2011

    [Resolvido]Numeração com Ano seguido de número Empty Re: [Resolvido]Numeração com Ano seguido de número

    Mensagem  Marcelo David 26/7/2021, 19:56

    Olá, boa tarde xará (se não fosse pelo s, (risos))!

    Para o seu caso em específico, vamos vazer um pouco diferente do código do JPaulo.

    - Crie uma consulta para retornar o último código (ano/sequencia) cadastrado na tabela tblTeste:
    Nome da consulta: qryUltimoAnoSequencia
    A SQL dessa consulta deve ser essa (crie uma consulta no modo designer e altere para a visualização SQL):
    Código:
    SELECT Last(Código) AS UR FROM tblTeste GROUP BY numero ORDER BY Last(Código) DESC;

    - Preferencialmente em um módulo, copie e cole a seguinte função:
    Código:
    Public Function IncrementaAnoCodigo() As String
     ''''''''''''''''''''''''''''''''''
     'Por Marcelo David - 26/07/2021
     ''''''''''''''''''''''''''''''''''
        Dim iAno As Integer
        Dim iSeq As Integer
        Dim strRes As String
        
        'Busco o último ano/sequencia da tabela, se retonar nulo, passo o ano atual com a sequencia 0
        'pois a ainda não há registros e nas linha mais abaixo serão incrementados corretamente
        strRes = Nz(DLookup("UR", "qryUltimoAnoSequencia"), Year(Date) & "/0")
        
        'Passo o valor do ano (que está nos 4 primeiros caracteres de strRes)
        iAno = Mid(strRes, 1, 4)
        
        'Passo o número da sequencia para a variável iSeq (a partir do 6º caractere)
        iSeq = Mid(strRes, 6)
        'Caso o último ano gravado seja diferente do ano atual, incremento mais um e passo
        '0 (zero) para a variável iSeq reiniciar a sequencia
        If iAno <> Year(Date) Then
            iAno = iAno + 1
            iSeq = 0
        End If

        'Monto a string como retorno para a função
        IncrementaAnoCodigo = IIf(iAno = 0, Year(Date), iAno) & "/" & Format(iSeq + 1, "0000")

    End Function

    - Agora, basta passar como Valor padrão a função criada para a Caixa de texto Código do formulário teste, assim:
    =IncrementaAnoCodigo()

    Aguardamos.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Numeração com Ano seguido de número Marcel11
    avatar
    marceloslcosta
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 16/05/2018

    [Resolvido]Numeração com Ano seguido de número Empty Re: [Resolvido]Numeração com Ano seguido de número

    Mensagem  marceloslcosta 28/7/2021, 20:58

    Boa tarde Xará!

    Perfeito. Funcionou do jeito que eu necessitava. Até quando lanço ocorrências de um sistema legado, como números do passado, ele ajusta automaticamente para o ano corrente e sequencia seguinte. Valeu a ajuda irmão!

    Um grande abraço!

    Marcelo David gosta desta mensagem

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3606
    Registrado : 21/04/2011

    [Resolvido]Numeração com Ano seguido de número Empty Re: [Resolvido]Numeração com Ano seguido de número

    Mensagem  Marcelo David 28/7/2021, 21:11

    Grato que deu certo! O Fórum agradece o retorno.
    Só não esqueça de marcar o tópico como resolvido.
    Dessa vez, eu marco. Wink


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Numeração com Ano seguido de número Marcel11

      Data/hora atual: 6/10/2022, 08:17