MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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


    [Resolvido]Numeração Ano Numero . Assim 18.001

    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  Assis em 18/9/2018, 11:29

    Boa tarde Amigos

    Estou a tentar numerar assim:

    18.001
    18.002
    18.003

    Mas só consigo o primeiro, depois do Else não funciona.


    Código:
    If IsNull(Me.Mod) Then
    Me.Mod = Right(Year(Date), 2) & "." & Format("1", "000")
    Else
    Me.Mod = Right(Year(Date), 2) & "." & DMax(Right("mod", "modelos"), 3) + 1
    End If


    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  ahteixeira em 18/9/2018, 11:32

    Bom dia Assis,

    Em que evento está a colocar, coloque no current.

    Abraço
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  Assis em 18/9/2018, 11:43

    Boas Teixeira

    Estou a colocar no receber o foco, é um formulário continuo.


    .................................................................................
    *** Só sei que nada sei ***
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  ahteixeira em 18/9/2018, 14:04

    Olá Assis,

    Poderia ser, mas não é só para colocar num registo novo.
    Pode postar um formulario para se testar?
    fica mais fácil para ajudar.

    Basketball
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  Assis em 18/9/2018, 14:15

    Teixeira resolvi assim, mas este não coloca a numeração como eu queria.

    Como seria alterar o ano para dar só 18 ?

    Como está dá 2018


    Código:
    Private Sub DataModelo_AfterUpdate()
    If Me.RecordsetClone.RecordCount = 0 Then
      Me.Mod = Format("1", "000") & "." & Year(Date)
    End If
    If Not IsNull(Me.Mod) Then
    Exit Sub
     
    Else
      If Val(Right(DMax("[mod]", "Modelos", "Right([mod],4)= " & Year(Date)), 4)) <> Year(Date) Then
         MsgBox "Reiniciando contagem dos registros para o novo ano", vbInformation, "Aviso"
         Me.Mod = Format("1", "000") & "." & Year(Date)
      Else
     
      Me.Mod = Format(Left(DMax("[mod]", "Modelos", "Right([mod],4)= " & Year(Date)), 4) + 1, "000") & "." & Year(Date)

      End If
    End If
    End

    End Sub


    .................................................................................
    *** Só sei que nada sei ***
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  ahteixeira em 18/9/2018, 15:19

    Olá Assis,

    Onde tem year(date)
    Use right(year(date(),2)

    Ou pode ser o format

    Outra coisa, você ja esta a usar o right com 4, verifique bem como tem na tabela os dados armazenados, no que já tem sera ajustar de 4 para 2

    Abraço
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  Assis em 18/9/2018, 23:32

    Teixeira se puder ajudar está aqui o exemplo

    Obrigado
    Anexos
    [Resolvido]Numeração Ano Numero . Assim 18.001 AttachmentNumera Assis.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (72 Kb) Baixado 13 vez(es)


    .................................................................................
    *** Só sei que nada sei ***
    scandinavo
    scandinavo
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 636
    Registrado : 11/11/2009

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  scandinavo em 19/9/2018, 13:13

    tem este d JPaulo
    Anexos
    [Resolvido]Numeração Ano Numero . Assim 18.001 AttachmentNumeracao3Digitos&Ano.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (20 Kb) Baixado 14 vez(es)
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  Assis em 19/9/2018, 13:36

    Obrigado scandinavo

    Eu queria era que em vez de 001/2018 fosse :

    001/18


    .................................................................................
    *** Só sei que nada sei ***
    Silvio
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4370
    Registrado : 20/04/2011

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  Silvio em 19/9/2018, 14:39

    Assis, boa tarde a si e a todos !!!

    Até fiz ficar o ano no formato desejado, porém agora estou a ver o por que não acrescenta o numerador a frente do ano.

    Código:
    Private Sub Mod_GotFocus()
    If Me.RecordsetClone.RecordCount = 0 Then
        Me.Mod = Format("1", "000") & "." & Format(Date, "yy")
     End If
    If Not IsNull(Me.Mod) Then
    Exit Sub
     
    Else
      If Val(Right(DMax("[mod]", "Modelos", "Right([mod],4)= " & Year(Date)), 2)) <> Format(Date, "yy") Then
          MsgBox "Reiniciando contagem dos registros para o novo ano", vbInformation, "Aviso"
          Me.Mod = Format("1", "000") & "." & Format(Date, "yy")

      Else
     
      Me.Mod = Format(Left(DMax("[mod]", "Modelos", "Right([mod],4)= " & Year(Date)), 2) + 1, "000") & "." & Format(Date, "yy")

      End If
    End If
    End
    End Sub

    A luta continua.....


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  ahteixeira em 19/9/2018, 14:56

    Olá a todos,

    O exemplo postado pelo scandinavo é mais simples, é só ajustar.

    Assis, para seguir a lógica que tinha iniciado, ajustei da seguinte forma.

    Teste assim com exemplo da mensagem nº 7
    Código:
    Private Sub Mod_GotFocus()
        Dim xContador As String
       
        If IsNull(Me.Mod) Then
           
            xContador = Nz(DMax("[mod]", "Modelos"), 0)
           
            If Left(xContador, 2) <> Right(Year(Date), 2) Then
                MsgBox "Reiniciando contagem dos registros para o novo ano", vbInformation, "Aviso"
                Me.Mod = Right(Year(Date), 2) & "/" & Format("1", "000")
            Else
                Me.Mod = Right(Year(Date), 2) & "/" & Format(Right(xContador, 3) + 1, "000")
            End If
        End If
    End Sub

    Silvio, respondemos ao mesmo tempo Very Happy

    Abraço a todos
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  Assis em 19/9/2018, 14:57

    Silvio

    Erro na linha abaixo

    If Val(Right(DMax("[mod]", "Modelos", "Right([mod],4)= " & Year(Date)), 2)) <> Format(Date, "yy") Then


    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  Assis em 19/9/2018, 14:58

    Teixeira

    Certinho

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    Silvio
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4370
    Registrado : 20/04/2011

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  Silvio em 19/9/2018, 15:14

    Showww


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  ahteixeira em 19/9/2018, 16:27

    Olá a todos

    Assis, obrigado pelo retorno.
    O código foi simplificado, mas a solução como pode verificar foi a sugestão da mensagem nº 6

    Hoje com um tempinho, também resolvi demonstrar como fazer a alteração com o exemplo do nosso grande JPaulo, postado na mensagem nº 8 pelo colega Scandinavo.
    Para isso criei mais duas funções.

    Uma faz com quatro digitos e a outra com dois digitos ambas do ano.

    1º - Adicionar as duas funções no módulo:

    Código:
    Public Function AnoNumeracao() As String
        'By JPaulo@2009
        '2018 - Alterado para Ano/Numercao
        'Exemplo http://www.maximoaccess.com/t34289-resolvidonumeracao-ano-numero-assim-18-001
        Dim fazcodigo(1) As Integer, temporario As Integer
        
        fazcodigo(1) = Nz(DMax("Right(CodigoControle,3)", "tblExemplo", "Left(CodigoControle,4)=Year(Date())"), 0)
        
            For I = 1 To UBound(fazcodigo)
                If temporario < fazcodigo(I) Then temporario = fazcodigo(I)
            Next
        
        AnoNumeracao = year(Date) & "/" & Format(temporario + 1, "000")
    End Function

    Public Function Ano2DigitosNumeracao() As String
        'By JPaulo@2009
        '2018 - Alterado para Ano/Numercao - ANO com DOIS DIGITOS
        'Exemplo http://www.maximoaccess.com/t34289-resolvidonumeracao-ano-numero-assim-18-001
        Dim fazcodigo(1) As Integer, temporario As Integer
        
        fazcodigo(1) = Nz(DMax("Right(CodigoControle,3)", "tblExemplo", "Left(CodigoControle,2)=Right(Year(Date()),2)"), 0)
        
            For I = 1 To UBound(fazcodigo)
                If temporario < fazcodigo(I) Then temporario = fazcodigo(I)
            Next
        
        Ano2DigitosNumeracao = Right(year(Date), 2) & "/" & Format(temporario + 1, "000")
    End Function

    2º - Ajustar a chamada da função no campo CodigoControlo

    [Resolvido]Numeração Ano Numero . Assim 18.001 026

    Abraço a todos

    Conteúdo patrocinado

    [Resolvido]Numeração Ano Numero . Assim 18.001 Empty Re: [Resolvido]Numeração Ano Numero . Assim 18.001

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 17/6/2019, 16:06