MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Reiniciar numeração no início do ano

    Compartilhe

    duluzsc
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 05/01/2016

    [Resolvido]Reiniciar numeração no início do ano

    Mensagem  duluzsc em Ter 05 Jan 2016, 12:21

    Bom Dia senhores..

    Faço aplicações em access 2003 há alguns anos mas não entendo muito como alterar os códigos.

    Desenvolvi uma aplicação em access na empresa que trabalho usada por aproximadamente 15 pessoas simultaneamente para comunicação interna (CI) e pedidos, e em ambas eu utilizava numeração automática do access em 2015.

    Como verifiquei que não teria como zerar a numeração sem perder os dados anteriores, resolvi utilizar a seguinte solução apresentada aqui no maximoaccess que resolveria meu problema:

    =SeImed(DContar("[Nº CI]";"CI")=0;("001" & Ano(Data()));Formato((Esquerda(DMáx("[Nº CI]";"CI");3)+1) & Ano(Data());"000\/0000"))


    O problema é que se eu tenho um número 558/2015 por exemplo, o primeiro número de janeiro de 2016 passa a ser "559/2016"

    Gostaria de saber uma solução para quando alterar o ano começar do 001.

    Já vi em outros tópicos ensinando a fazer isso através de programação, mas eu não consegui.


    Pretendo participar ainda muito do fórum, pois faço alterações no meu sistema quase que diariamente.

    Grande abraço
    Eduardo


    Última edição por duluzsc em Sex 08 Jan 2016, 12:13, editado 1 vez(es)

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  JPaulo em Ter 05 Jan 2016, 12:28

    Ola seja bem vindo ao forum;

    Assunto imensamente debatido aqui;

    Um exemplo;
    [Você precisa estar registrado e conectado para ver este link.]



    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    duluzsc
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 05/01/2016

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  duluzsc em Ter 05 Jan 2016, 12:42

    Obrigado pela Resposta JPaulo

    Primeiro gostaria de agradecer pelas boas vindas e rapidez da resposta.


    Peço um pouco de paciência comigo pela falta de conhecimento em programação. Vi esses tópicos que mencionou mas não consegui implementar no meu programa.

    Como disse, coloquei essa formula =SeImed(DContar("[Nº CI]";"CI")=0;("001" & Ano(Data()));Formato((Esquerda(DMáx("[Nº CI]";"CI");3)+1) & Ano(Data());"000\/0000")) em valor padrão e a mesma não zera no início do ano. Existe um jeito de aprimorar essa mesma fórmula em VALOR PADRÃO ou realmente tenho que inserir em códigos.

    Se for necessário inserir códigos, gostaria que alguém tentasse me explicar passo a passo.


    Obrigado

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  ahteixeira em Ter 05 Jan 2016, 14:13

    Olá Eduardo, seja bem-vindo ao MaximoAccess.
    Como o amigo JPaulo, fez referencia não falta exemplos, veja este abaixo
    [Você precisa estar registrado e conectado para ver este link.]
    Na minha opinião, talvez seja mais adequado ao que pretende.
    Este reinicia anualmente.
    Tente estudar e adapatar ao seu projecto.

    Qualquer coisa estamos cá.
    Abraço e bons estudos

    duluzsc
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 05/01/2016

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  duluzsc em Qui 07 Jan 2016, 14:38

    Acabei aplicando uma solução encontrada aqui no maximoaccess e deu parcialmente certo.
    Gostaria que me ajudassem para que eu possa resolver completamente essa minha pendência.

    Com a solução apresentada abaixo, está dando certo a numeração automática, porém preciso primeiro criar e clicar em um botão "NOVO REGISTRO".

    Gostaria de uma solução para "AO CARREGAR" ou mesmo em um formulário anterior, criar um botão que ao clicar entre nesse novo form já com o novo registro, sem precisar clicar em um botão antes de começar a cadastrar.




    Option Compare Database
    Option Explicit


    'Criado por Balem em 28/07/14
    Private Sub Nome_Dirty(Cancel As Integer)
    'Se não for novo registro, então pode editar.
    If Not Me.NewRecord Then
    Exit Sub
    End If
    If Me.RecordsetClone.RecordCount = 0 Then
    ' a tabela está sem registros
    Me.txtNrCI = Format("1", "0000") & "/" & Year(Date)

    Else
    If DCount("*", "CI", "Right([NrCI],4) = " & Year(Date)) <> 0 Then
    Me.txtNrCI = Format(Left(DMax("[NrCI]", "CI", "Right([NrCI],4)= " & Year(Date)), 4) + 1, "0000") & "/" & Year(Date)

    Else

    MsgBox "Reiniciando contagem dos registros para o novo ano." _
    & vbCrLf & "No aplicativo, retire essa msgbox.", vbInformation, "Aviso"

    Me.txtNrCI = Format("1", "0000") & "/" & Year(Date)


    End If
    End If
    End Sub


    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  ahteixeira em Qui 07 Jan 2016, 14:52

    Olá,
    Efectue um backup e tente com código abaixo no evento "No actual" do formulário:

    Código:
    Private Sub Form_Current()
    'ahteixeira 2016 para MaximoAccess v1.1
        If CStr(Me.NewRecord) = -1 Then
            
            If DCount("*", "CI", "Right([NrCI],4) = " & Year(Date)) <> 0 Then
                Me.txtNrCI = Format(Left(DMax("[NrCI]", "CI", "Right([NrCI],4)= " & Year(Date)), 4) + 1, "0000") & "/" & Year(Date)
            Else
            MsgBox "Reiniciando contagem dos registros para o novo ano." _
            & vbCrLf & "No aplicativo, retire essa msgbox.", vbInformation, "Aviso"
            
            Me.txtNrCI = Format("1", "0000") & "/" & Year(Date)
            End If
        End If
    End Sub

    Abraço


    Última edição por ahteixeira em Qui 07 Jan 2016, 16:15, editado 1 vez(es)

    duluzsc
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 05/01/2016

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  duluzsc em Qui 07 Jan 2016, 15:35

    ahteixeira

    Muito obrigado.. Resolvido.

    Substituí o código que eu havia colocado aqui por este que você passou e deu certo. Ao entrar no formulário agora já aparece o novo número sequencial. Só fiquei com uma dúvida, puro preciosismo, mas se for fácil de resolver...
    Antes eu havia criado um botão desfazer e além de limpar os dados de cadastro ele cancelava o número sequencial, podendo aproveitar o mesmo no próximo cadastro. Agora quando clico em desfazer, apaga todos os campos mas grava o número sequencial (NrCI).


    Se tiver alguma sugestão ótimo, caso contrário essa solução que você deu já resolve meu problema.


    Abraço
    Eduardo

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  Assis em Qui 07 Jan 2016, 15:42

    Teixeira

    Para essa numeração como deve ser o tipo de dados do campo na tabela ?


    .................................................................................
    *** Só sei que nada sei ***

    duluzsc
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 05/01/2016

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  duluzsc em Qui 07 Jan 2016, 15:56

    texto

    É isso que quer saber?

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  ahteixeira em Qui 07 Jan 2016, 16:24

    Olá a todos, antes de tudo actualizei código da mensagem nº 6 (faltava end if. acontece) Very Happy

    Assis, é mesmo isso que Eduardo disse, Texto.

    Eduardo, no seu botão pode colocar apenas conforme abaixo:
    Código:
    Private Sub cmdCanc_Click()
        Me.Undo
        Call Form_Current
    End Sub

    Se não desejar que seja feita novamente a numeração retire Call Form_Current
    Anexo teste
    Abraço
    Anexos
    numeracao_evento_atual_duluzsc.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (26 Kb) Baixado 8 vez(es)


    Última edição por ahteixeira em Qui 07 Jan 2016, 16:57, editado 2 vez(es)

    duluzsc
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 05/01/2016

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  duluzsc em Qui 07 Jan 2016, 16:48

    Muito obrigado novamente ahteixeira

    Quanto ao "end if" que faltava eu já havia percebido e corrigi.

    Implementei o código que me passou no botão cancelar e não deu certo, após entrar e preencher o novo número o botão continua apagando os dados mas perco aquele número.

    Baixei a aplicação que mandou como exemplo e ao clicar Novo Registro da erro no access e trava.

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  ahteixeira em Qui 07 Jan 2016, 16:58

    Olá, baixe de novo.
    Abraço

    duluzsc
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 05/01/2016

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  duluzsc em Qui 07 Jan 2016, 17:59

    Ok.. nesse que você mandou agora ele cancela e fecha o formulário certo??

    Eu criei um aqui pra teste e deu certo (anexo), só tenho que olhar com calma no meu arquivo que ta mais completo porque não tá zerando.

    Mas tá resolvido, ficou ótimo.. É questão de prestar atenção e ver o que tá acontecendo no meu arquivo e adaptar..


    Agradeço muito a atenção dos amigos, me ajudaram muito.


    Grande abraço
    Anexos
    testeCI.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (58 Kb) Baixado 11 vez(es)

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Reiniciar numeração no início do ano

    Mensagem  ahteixeira em Sex 08 Jan 2016, 11:20

    Olá Eduardo, é mesmo isso, qualquer coisa estamos cá  Wink
    Obrigado pelo retorno, os utilizadores do fórum agradecem.

    Faltou apenas dar o tópico como resolvido, veja como fazer:
    [Você precisa estar registrado e conectado para ver este link.]
    Abraço

      Data/hora atual: Dom 04 Dez 2016, 14:16