... Assinatura do site por 3 anos + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$182,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Replicar registros de uma tabela

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

Envie seu comentário: