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 6 vez(es)
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3358
    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 : 3358
    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 : 3358
    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 : 3358
    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: 1/8/2021, 11:43