Como gerar um contador por Dia no VBA: Entenda como criar uma rotina para gerar registros numerados diariamente
Neste tutorial você vai aprender Como gerar um contador por Dia no VBA. 😲
Este conteúdo é proveniente de um seguidos do nosso canal que tinha a seguinte dúvida?
Como eu poderia criar uma rotina de inclusão aonde um campo chamado NumSeq numerasse registros diferentes para lançamentos efetivados em um mesmo dia. Caso o lançamento fosse realizado em um dia diferente, o contador sempre teria que zerar iniciando a contagem???
Bom, para resolver este problema, vamos compartilhar a tabela com os campos para que você tenha uma noção do que precisamos resolver
Repare o seguinte. Veja o dia 05/04/2022 da tabela. Ela possui 3 lançamentos. Nosso objetivo é fazer com que, caso o usuário tenha que fazer mais um lançamento neste mesmo dia 05/04/2022, o campo NumSeq deve ser o nº 4, ou seja, o 4º registro do dia 05/04/2022, e assim para todos os dias. Logicamente, caso não haja lançamento para um determinado dia, o NumSeq será 1.
Deu para entender o nosso problema???💪
Como gerar um contador por Dia no VBA: Criando um rotina após atualizar a Data no formulário
Com base no formulário com os campos não associados a tabela, vamos criar uma rotina no evento ‘Após Atualizar’ do campo Data. Toda vez que o usuário alterar a data, a rotina irá contar a quantidade de registros que já foram lançados para aquele dia e vai acrescentar o próximo no campo ‘NumSeq‘ (perceba que ele está desabilido)
Private Sub txtData_AfterUpdate()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSql As String
Dim dtmData As Date
dtmData = Format(Me!txtData, "mm/dd/yyyy")
strSql = "SELECT * FROM tblLancamento WHERE Data = #" & dtmData & "#"
Set db = CurrentDb()
Set rs = db.OpenRecordset(strSql)
rs.MoveLast
rs.MoveFirst
Me!txtNumSeq = rs.RecordCount + 1
rs.Close
db.Close
Set rs = Nothing
End Sub
Baixe o arquivo para Praticar!!👇👇👇
Faça download do Template deste Tutorial
Insira o seu endereço de e-mail abaixo para receber grátis o link para fazer download do arquivo.
Fique tranquilo, seu e-mail está completamente SEGUROconosco!
Como gerar um contador por Dia no VBA: Criando uma rotina de inclusão na tabela
Após a rotina de atualização após o usuário selecionar a data, vamos criar uma rotina que possa gravar os dados na tabela.
Private Sub btnGravar_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblLancamento")
With rs
.AddNew
!Data = Me!txtData
!NumSeq = Me!txtNumSeq
!ContaDebito = Me!txtContaDebito
!ContaCredito = Me!txtContaCredito
!Valor = Me!txtValor
.Update
End With
rs.Close
db.Close
Set rs = Nothing
'Chama um procedimento que limpa os campos do frm
Call LimpaCampos
MsgBox "Registro foi gravado com êxito!", vbInformation
End Sub
Sub LimpaCampos
Me!txtData = Null
Me!txtNumSeq = Null
Me!txtContaDebito = Null
Me!txtContaCredito = Null
Me!Valor = Null
End Sub
Curso de Access VBA Completo: Do Básico ao Avançado.
Quer aprender a programar no Access? Clique na imagem abaixo:
Por fim, deixe seu comentário sobre o que achou, se usar este recurso e você também pode enviar a sua sugestão para os próximos posts.