Replicar registros de uma tabela
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Usuário Marcos:
Boa tarde!
Amigo Avelino, tem como replicar dados de uma tabela, alterando somente a data?
Data - Campo1 - Campo2
01/01/2018 06:00 07:10
Acrescentar 02/01/2018 06:00 07:10
Acrescentar 03/01/2018 06:00 07:10
e assim por diante - datas diferentes, utilizando os mesmos dados dos campos.
Grato.
Suporte:
Marcos,
segue um exemplo. Abra o formulário de teste e clique no botão para gerar os registros.
O código é este:
Private Sub Comando3_Click()
Dim rs As DAO.Recordset
Dim strSql$, k(3)
strSql = "SELECT * FROM tblteste WHERE dataT = dmax('dataT','tblTeste')"
'carrega o registro com a maior data (considerei aqui que não haverá repetição de data nesta tabela)
Set rs = CurrentDb.OpenRecordset(strSql)
'passa para matriz os valores dos campos
k(0) = rs!dataT
k(1) = rs!campo1
k(2) = rs!campo2
'alimenta a tabela com novos registros, com data crescente
For j = 1 To Me!txtReg
rs.AddNew
rs!dataT = k(0) + j
rs!campo1 = k(1)
rs!campo2 = k(2)
rs.Update
Next
rs.Close
Set rs = Nothing
MsgBox "Abra a tabela tblTeste e verifique os registros que foram lançados...", vbInformation, "Aviso"
End Sub
Usuário Marcos:
Bom dia, mestre Avelino!
Sim, é basicamente isso, com a seguinte diferença: por exemplo, em 01/01/2018 tenho um conjunto de dados e quero gerar todos esses dados para o dia seguinte ou para qualquer outra data de referência. A idéia consiste em pegar todos os dados de 01/01/2018 e realizar uma cópia para 02/01/2018.
id - data - horário - linha cod - codtab
1 01/01/2018 05:00 0.512 001 14.1
2 01/01/2018 05:20 0.513 001 14.1
3 01/01/2018 06:10 0.600 001 14.1
4 01/01/2018 06:00 0.501 001 14.1
5 02/01/2018 05:00 0.512 001 14.1
6 02/01/2018 05:20 0.513 001 14.1
7 02/01/2018 06:10 0.600 001 14.1
8 02/01/2018 06:00 0.501 001 14.1
Suporte:
Marcos,
segue o exemplo, acrescentando a tabela tblTeste2 e utilizando o seguinte código, que acrescenta os novos registros:
Private Sub Comando3_Click()
Dim rs As DAO.Recordset
Dim strSql$
strSql = "SELECT * FROM tblteste2 WHERE [data] = #" & Format(Me!DataMovimento, "mm/dd/yyyy") & "#"
Set rs = CurrentDb.OpenRecordset(strSql)
rs.MoveLast: rs.MoveFirst
Do While Not rs.EOF
CurrentDb.Execute "INSERT INTO tblteste2 (data,horario,linha,cod,codtab) VALUES ('" & rs!Data + 1 & "','" & _
rs!horario & "','" & rs!linha & "','" & rs!cod & "','" & rs!codtab & "');"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
MsgBox "Abra a tabela tblTeste2 e verifique os registros que foram lançados...", vbInformation, "Aviso"
End Sub
Usuário Marcos:
Beleza, isso mesmo!
Avelino, muito obrigado!
Download
Não há comentário |