Boa tarde amigos
Este código é do Mestre JPaulo.
Estou a tentar copiar dados de duas tabela para outras duas tabelas.
A parte de copiar rst para rst1 está resolvida pois é sempre só uma linha a copiar.
A parte para copiar rst2 para rst3 é que não estou a conseguir pois só consigo copiar a primeira linha, e esta parte pode ter uma ou muitas linhas para copiar.
Isto é uma Guia de remessa para copiar para fatura.
rst para rst1 é o cabeçalho da Guia. --- 1 Linha
rst2 para rst3 sãoos detalhes da Guia -- Várias linha, mas como está o codigo consigo copiar só a primeira linha
Private Sub Comando26_Click()
Dim X As Long
Dim rst, rst1, rst2, rst3 As Recordset
Set rst = CurrentDb.OpenRecordset("select * from Consignacao")
Set rst1 = CurrentDb.OpenRecordset("select * from Encomenda")
Set rst2 = CurrentDb.OpenRecordset("select * from ConsignacaoDetalhes")
Set rst3 = CurrentDb.OpenRecordset("select * from DetalhesArtigos")
X = 0
rst.MoveLast
rst.MoveFirst
rst2.MoveLast
rst2.MoveFirst
Do While Not rst.EOF
X = X + 1
rst1.AddNew
rst3.AddNew
rst1.Fields("LN").Value = Nz(DMax("ln", "Encomenda")) + 1
rst1.Fields("Operação").Value = rst.Fields("Operação").Value
rst1.Fields("Cliente").Value = rst.Fields("Cliente").Value
rst1.Fields("Encomenda").Value = rst.Fields("encomenda").Value
rst1.Fields("Encomendacliente").Value = rst.Fields("encomendacliente").Value
rst1.Fields("Data").Value = Date
rst1.Fields("Falta").Value = 1
rst1.Fields("Recebift").Value = rst1.Fields("Falta").Value
'-------------------- A patir daqui é que só copia a primeira linha ---------------
rst3.Fields("lnd").Value = rst1.Fields("LN").Value
rst3.Fields("Ref").Value = rst2.Fields("Ref").Value
rst3.Fields("tipo").Value = rst2.Fields("Tipo").Value
rst3.Fields("Descrição").Value = rst2.Fields("Descrição").Value
rst3.Fields("Quant").Value = rst2.Fields("Quant").Value
rst3.Fields("tamanho").Value = rst2.Fields("Tamanho").Value
rst3.Fields("Preço").Value = rst2.Fields("Preço").Value
rst3.Fields("Preçocusto").Value = rst2.Fields("Preçocusto").Value
rst3.Fields("sys").Value = rst2.Fields("sys").Value
'adiciona nas tabelas
rst1.Update
rst3.Update
'apaga as tabela
rst.Delete
rst2.Delete
'Else
'se não encontra não faz nada
rst.MoveNext
rst2.MoveNext
Loop
If X > 0 Then
MsgBox X & " Documento Consignação Registado Nas Vendas de Hoje ", vbQuestion, "Conforlar"
Else
End If
Set rst = Nothing
Call Comando6_Click
End Sub
Este código é do Mestre JPaulo.
Estou a tentar copiar dados de duas tabela para outras duas tabelas.
A parte de copiar rst para rst1 está resolvida pois é sempre só uma linha a copiar.
A parte para copiar rst2 para rst3 é que não estou a conseguir pois só consigo copiar a primeira linha, e esta parte pode ter uma ou muitas linhas para copiar.
Isto é uma Guia de remessa para copiar para fatura.
rst para rst1 é o cabeçalho da Guia. --- 1 Linha
rst2 para rst3 sãoos detalhes da Guia -- Várias linha, mas como está o codigo consigo copiar só a primeira linha
Private Sub Comando26_Click()
Dim X As Long
Dim rst, rst1, rst2, rst3 As Recordset
Set rst = CurrentDb.OpenRecordset("select * from Consignacao")
Set rst1 = CurrentDb.OpenRecordset("select * from Encomenda")
Set rst2 = CurrentDb.OpenRecordset("select * from ConsignacaoDetalhes")
Set rst3 = CurrentDb.OpenRecordset("select * from DetalhesArtigos")
X = 0
rst.MoveLast
rst.MoveFirst
rst2.MoveLast
rst2.MoveFirst
Do While Not rst.EOF
X = X + 1
rst1.AddNew
rst3.AddNew
rst1.Fields("LN").Value = Nz(DMax("ln", "Encomenda")) + 1
rst1.Fields("Operação").Value = rst.Fields("Operação").Value
rst1.Fields("Cliente").Value = rst.Fields("Cliente").Value
rst1.Fields("Encomenda").Value = rst.Fields("encomenda").Value
rst1.Fields("Encomendacliente").Value = rst.Fields("encomendacliente").Value
rst1.Fields("Data").Value = Date
rst1.Fields("Falta").Value = 1
rst1.Fields("Recebift").Value = rst1.Fields("Falta").Value
'-------------------- A patir daqui é que só copia a primeira linha ---------------
rst3.Fields("lnd").Value = rst1.Fields("LN").Value
rst3.Fields("Ref").Value = rst2.Fields("Ref").Value
rst3.Fields("tipo").Value = rst2.Fields("Tipo").Value
rst3.Fields("Descrição").Value = rst2.Fields("Descrição").Value
rst3.Fields("Quant").Value = rst2.Fields("Quant").Value
rst3.Fields("tamanho").Value = rst2.Fields("Tamanho").Value
rst3.Fields("Preço").Value = rst2.Fields("Preço").Value
rst3.Fields("Preçocusto").Value = rst2.Fields("Preçocusto").Value
rst3.Fields("sys").Value = rst2.Fields("sys").Value
'adiciona nas tabelas
rst1.Update
rst3.Update
'apaga as tabela
rst.Delete
rst2.Delete
'Else
'se não encontra não faz nada
rst.MoveNext
rst2.MoveNext
Loop
If X > 0 Then
MsgBox X & " Documento Consignação Registado Nas Vendas de Hoje ", vbQuestion, "Conforlar"
Else
End If
Set rst = Nothing
Call Comando6_Click
End Sub