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]Como fazer uma tabela contínua?

    Compartilhe
    avatar
    Rsygma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 23/03/2016

    [Resolvido]Como fazer uma tabela contínua?

    Mensagem  Rsygma em 28/9/2018, 01:03

    Olá amigos,

    Tenho um Bd gerado a cada ano (2014/2015...) e gostaria de saber se vale a pela e, se sim, como fazer para montar uma única tabela, uma vez que, a cada ano, ela tem que começar a contar os registros do 001...ou seja, registro 001 de 2018.....001 de 2019...etc.

    Valeu.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7190
    Registrado : 05/11/2009

    Re: [Resolvido]Como fazer uma tabela contínua?

    Mensagem  Alexandre Neves em 28/9/2018, 13:37

    Boa tarde
    Tenha a tabela e acrescente campo AnoReg para preencher com o ano


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1071
    Registrado : 07/12/2011

    Re: [Resolvido]Como fazer uma tabela contínua?

    Mensagem  tauron em 28/9/2018, 20:13

    De uma olhada no link abaixo,tem um exemplo na mensagem 8.
    avatar
    Rsygma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 23/03/2016

    Como fazer uma tabela contínua?

    Mensagem  Rsygma em 28/9/2018, 22:56

    Tauron, onde esta o link?
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1071
    Registrado : 07/12/2011

    Re: [Resolvido]Como fazer uma tabela contínua?

    Mensagem  tauron em 28/9/2018, 23:44

    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1071
    Registrado : 07/12/2011

    Re: [Resolvido]Como fazer uma tabela contínua?

    Mensagem  tauron em 2/10/2018, 22:06

    Question
    avatar
    Rsygma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 23/03/2016

    Como fazer uma tabela contínua?

    Mensagem  Rsygma em 24/10/2018, 21:37

    Tauron,



    Esse arquivo eu já vi, os números eu já coloquei automaticamente, o que eu quero é o seguinte: tenho a tabela do ano de 2018 com os arquivos 01,02......etc; gostaria de, ao mudar para o ano de 2019, essa tabela inciasse a contagem novamente:01,02,03.....etc.; tem como?

    Desculpe pela demora na resposta e, obrigado.....
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1071
    Registrado : 07/12/2011

    Re: [Resolvido]Como fazer uma tabela contínua?

    Mensagem  tauron em 29/10/2018, 22:00

    Voce pretende implementar (antes de inserir dados) ou modificar (ja existem dados)?

    O exemplo que passei sera para o caso de implementar.
    Anexos
    Numerar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (25 Kb) Baixado 10 vez(es)
    avatar
    Rsygma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 23/03/2016

    Como fazer uma tabela contínua?

    Mensagem  Rsygma em 30/10/2018, 15:13

    Tauron,


    Na verdade eu preciso que a tabela, a cada novo ano, recomece a contar o numero automaticamente (01,02,03....), veja meu arquivo:
    Preciso que, na virada do ano (2018/2019) a numeração automática volte a contar do 1.


    Mesmo assim, valeu!!! Very Happy
    Anexos
    Sistema RDO.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (756 Kb) Baixado 5 vez(es)
    avatar
    FabioGO
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 22/08/2012

    Re: [Resolvido]Como fazer uma tabela contínua?

    Mensagem  FabioGO em 30/10/2018, 18:38

    Não sei se é a melhor forma de fazer, mas vou tentar ajudar.

    Fiz uma proposta que é:

    1)Criei um novo campo na tabela de cadastro com o nome HoraReg (com o valor padrão =Agora()), para registrar a hora do cadastro e também um novo campo para o numero do BO, com o nome NumBO.

    2)Vinculei o campo do formulário BO_n° com o novo campo da tabela NumBO

    3)No evento apos atualizar do seu campo Data no formulario frm_Guias, coloquei o código abaixo:

    Código:
    Dim rs As DAO.Recordset

    Set rs = CurrentDb.OpenRecordset("SELECT * From Tab_Cadastro ORDER BY Data, HoraReg") ' abre a tabela e ordena pelo campo Data e depois HoraReg

    If Nz(rs.RecordCount) = 0 Then ' confere se há registros na tabela

        Me.BO_nº = 1 ' se não houver registros, o valor para o BO_n° será 1
            
    ElseIf DCount("*", "Tab_Cadastro", "Year([Data])='" & Year(Nz(Me.Data, 0)) & "'") > 0 Then 'se houver registros com o mesmo ano do cadastro do registro atual
        
        rs.MoveLast  'move para o ultimo registro
        Me.BO_nº = Nz(rs!NumBO + 1, 0) 'pega o valor do ultimo numero do BO e soma mais 1 para o próximo registro
        
    ElseIf DCount("*", "Tab_Cadastro", "Year([Data])='" & Year(Nz(Me.Data, 0)) & "'") = 0 Then 'se não houver registros com o mesmo ano do cadastro atual

        Me.BO_nº = 1 'o numero do BO será 1 para esse ano
        
    End If
        
    rs.Close
    Me.Refresh

    Teste para ver, se não for o que precisa, espere algum mestre ajudar.

    Se for o que precisa e tiver duvidas, é só perguntar.
    Anexos
    Sistema RDO.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (808 Kb) Baixado 10 vez(es)


    Última edição por FabioGO em 1/11/2018, 12:05, editado 1 vez(es)
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1071
    Registrado : 07/12/2011

    Re: [Resolvido]Como fazer uma tabela contínua?

    Mensagem  tauron em 30/10/2018, 19:18

    O exemplo que disponibilizei faz exatamente isso. Um dos formularios esta de maneira que a numeracao eh reiniciada mensalmente e o outro anual. Faca o teste alterando o calendario do seu pc?
    avatar
    flecha
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 274
    Registrado : 11/01/2012

    Re: [Resolvido]Como fazer uma tabela contínua?

    Mensagem  flecha em 31/10/2018, 17:13

    Rsygma,
    uso essa sub para um programa de Entrevista, que para cada entrevista o form cria um número / Ano Ex: 001/2018......
    Acho que foi aqui no forum (JPaulo) que ajudou, não lembro quem indicou.

    http://www.maximoaccess.com/t11502-resolvidonumeracao-personalizada-no-formulario?highlight=nextNumAno#90456

    Modifique seu campo  BO nº do Tab.Cadastro  para Texto

    No Form Cadastro no campo BO nº entre em Propriedades e na linha  Valor Padrão coloque =NextNumAno()

    Teste ai!

    Código:

    Public Function NextNumAno() As String
    'Gera o próximo código da tabela de numeração/ano
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim intYear As Integer
    Dim strSql As String

    'Ano atual, conforme o sistema
    intYear = Year(Date)

    'Verifica o último código para o ano
    strSql = "SELECT CLng(Left$(NumAno, Len(NumAno)-5)) As Num, " & _
    "CInt(Right$(NumAno, 4)) As Ano FROM tab_Entrevista " & _
    "WHERE CInt(Right$(NumAno, 4))=" & CStr(intYear) & _
    " ORDER BY CLng(Left$(NumAno, Len(NumAno)-5)) DESC"
    Set db = CurrentDb()
    Set rst = db.OpenRecordset(strSql, dbOpenDynaset)
    With rst
        If .BOF And .EOF Then
            'NextNumAno = "1" & CStr(intYear) ' Tirei a Barra e coloquei ponto AGORA SEM PONTO.
            NextNumAno = "1." & CStr(intYear) ' Tirei a Barra e coloquei ponto
        Else
            .MoveFirst
            'NextNumAno = CStr(!Num + 1) & CStr(intYear) ' Tirei a Barra e coloquei ponto AGORA SEM PONTO.
            NextNumAno = CStr(Format(!Num + 1, "000")) & "." & CStr(intYear) ' Tirei a Barra e coloquei ponto
        End If
        .Close
    End With
    Set rst = Nothing
    Set db = Nothing
    End Function

    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1071
    Registrado : 07/12/2011

    Re: [Resolvido]Como fazer uma tabela contínua?

    Mensagem  tauron em 5/11/2018, 09:42

    Question
    avatar
    Rsygma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 23/03/2016

    Como fazer uma tabela contínua?

    Mensagem  Rsygma em 5/11/2018, 10:51

    Desculpe-me pela demora na resposta.

    Obrigado pela ajuda as duas alternativas funcionam muito bem, mas já estou até trabalhando com o modelo do Tauron.

    Novamente obrigado pela ajuda, aprendi mais....

    Valeu.
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1071
    Registrado : 07/12/2011

    Re: [Resolvido]Como fazer uma tabela contínua?

    Mensagem  tauron em 5/11/2018, 11:10

    Obrigado pelo retorno, o forum agradece.

      Data/hora atual: 19/3/2019, 21:52