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

    Incrementar campo limitando a uma data

    Compartilhe

    SAPMM
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 359
    Registrado : 07/08/2011

    Incrementar campo limitando a uma data

    Mensagem  SAPMM em Qui 19 Abr 2018, 13:56

    Senhores,

    Tenho o código abaixo que utilizo para incrementar a numeração do campo "Ordem", só que atualmente incremento em todo os registros, porém gostaria de limitar aos registros de uma data. De modo que na tabela tenho datas de dos dias do mês, sendo que em um dia pode ter quatro registros, logo queria utilizar o incremento restrito ao registros de cada data.



    Código:
    Private Sub ORDEM_AfterUpdate()
    Dim rs As Recordset, NovaOrdem As Integer, NUM As String
    DoCmd.RunCommand acCmdSaveRecord

    If IsNull(Me.ORDEM) Then
      Exit Sub
    End If

    Set rs = CurrentDb.OpenRecordset("SELECT [tbl_fluxo].Num, [tbl_fluxo].Ordem " & _
                                    "FROM [tbl_fluxo] " & _
                                    "ORDER BY [tbl_fluxo].ordem;")

    With rs
       .MoveFirst
       .FindFirst "[ordem]= " & Me.ORDEM
       If .NoMatch Then
           .FindFirst "[num]= '" & Me.NUM & "'"
           .Edit
           !ORDEM = Me.ORDEM
           .Update
           GoTo Final

       Else
           NovaOrdem = Me.ORDEM
           NUM = Me.NUM
           
           Do While Not .EOF
               .Edit
               !ORDEM = !ORDEM + 1
               .Update
               .MoveNext
           Loop
       End If

    End With

    DoCmd.RunSQL "UPDATE [tbl_fluxo] SET ordem =" & NovaOrdem & " WHERE num = " & Me.NUM & ";"
    Me.Requery




    GoTo Final

    Final:
    rs.Close
    Set rs = Nothing
    On Error Resume Next
    End Sub

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: Incrementar campo limitando a uma data

    Mensagem  Noobezinho em Qui 19 Abr 2018, 15:50

    Jose

    Qual é o formato da numeração ORDEM?

    A tabela Nova Ordem é para ajudar no incremento?

    Esse incremento que deseja para cada data, reinicia do um?


    Aguardo...

    SAPMM
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 359
    Registrado : 07/08/2011

    Re: Incrementar campo limitando a uma data

    Mensagem  SAPMM em Qui 19 Abr 2018, 16:07

    Prezado boa tarde,

    Segue as respostas:

    Qual é o formato da numeração ORDEM?
    R: Número

    A tabela Nova Ordem é para ajudar no incremento?
    R: Correto, para ajudar no incremento


    Esse incremento que deseja para cada data, reinicia do um?
    R: Sim reinicia no um. Por exemplo, se no dia 19/04 tem três registros, e desejar alterar a ordem dos registros, posso ir no registro que está com o campo "Ordem" preenchido com o número 3 e alterar o campo para o valor 1, os outros dois registros serão incrementados a partir do 1, de modo que o campo ordem fica incrementado para 2 e 3 para os outros registros.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: Incrementar campo limitando a uma data

    Mensagem  Noobezinho em Qui 19 Abr 2018, 21:56

    Isso dá para automatizar, a cada dia ele retorna ao número 1.

    Mas esse código deverá ter o dia para se saber de qual dia é o registros, ou terá

    códigos 01,02,03 repetitivos.

    Sugiro colocar a data no final dele assim: 01_190418, 02_190418, etc...

    Assim, só de "bater o olho" já saberá o dia do registro.

    Que tal?

    Aguardo...

    SAPMM
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 359
    Registrado : 07/08/2011

    Re: Incrementar campo limitando a uma data

    Mensagem  SAPMM em Sex 20 Abr 2018, 13:27

    Prezado bom dia,

    Não consegui entender com tratar, pois em uma determinada data poderá ter diversos registros, mais que três.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: Incrementar campo limitando a uma data

    Mensagem  Noobezinho em Sex 20 Abr 2018, 13:51

    Assim

    Digamos que na data de hoje, adicionou 3 registros na tabela, então:


    01/200418;02/200418;03/200418

    Amanhá, outros 3 registros:

    01/210418;02/210418;03/210418

    Enquanto tiver adicionando registro no dia, o código irá incrementando, para esse dia.

    E esse incremento muda automaticamente e reinicia no 01 para a nova data.

    Pode escolher se deseja  a barra direita ( / ), traço ( - ) ou undeline ( _ ) para

    separa o código do dia, mas uma vez escolhido, será sempre ele.

    É isso.

    SAPMM
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 359
    Registrado : 07/08/2011

    Re: Incrementar campo limitando a uma data

    Mensagem  SAPMM em Sex 20 Abr 2018, 21:03

    Entendi. Mas se depois de adicionado os registros de uma determinada quiser mudar a ordem dos mesmos no form? de modo que o registro que estava com o campo ordem igual a 3 no dia 19/04, queira mudar o campo ordem de 3 para 1, e os outros dois registros tem o campo Ordem atualizado automaticamente para 2 e 3? Essa parte que não estou conseguindo fazer.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: Incrementar campo limitando a uma data

    Mensagem  Noobezinho em Sex 20 Abr 2018, 21:22

    O código do registro é a ID (identidade) dele.

    É ele que faz com que o registro seja único.

    Se deseja mudar a ordem frequentemente de um registro, sugiro que o faça usando um campo, vou dar o nome

    aqui de numClassific.

    Ao invés de usar a tabela como fonte de registro do formulário, utilize uma consulta, basta clicar no botão com

    3 pontinhos ( ... ) na propriedade Fonte de registro do formulário para cria-la, e então classifique esse campo (numClassif)

    na ordem crescente.

    Assim sempre que quiser após alterar a classificação dos registros,  clica-se  num botão para reclassificar os registros

    do formulário(Requery).

    [ ]'s

      Data/hora atual: Qui 24 Maio 2018, 13:12