Olá, Mestres! Estou com dificuldades de adaptar o código postado pelo Mestre Avelino Sampaio em outro tópico, para transferir um registro da tabela principal para outra e ao mesmo tempo deletando esse registro da tabela principal.
Segue o código adaptado (só consigo transferir apenas 1 registro e quando vou transferir outro, o access trava:
Public Sub tabExonerar(cod As Long)
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT * FROM Tabela1 WHERE codigo=" & cod
Set rs = CurrentDb.OpenRecordset(strSQL)
Set rs2 = CurrentDb.OpenRecordset("Lista_de_Exonerados")
Do While Not rs.EOF
rs2.AddNew
rs2!Matrícula = rs!Matrícula
rs2!Nome = rs!Nome
rs2!Cargo = rs!Cargo
rs2!Função = rs!Função
rs2!Símbolo = rs!Símbolo
rs2!Lotação = rs!Lotação
Do While Not rs2.EOF
Loop
rs2.Update
rs.MoveNext
Loop
rs2.Close
rs.Close
Set rs2 = Nothing
Set rs = Nothing
CurrentDb.Execute "Delete * from Tabela1 where codigo=" & cod
MsgBox "Dados transferidos para a tabela Exonerados. Abra a tabela e verifique....", vbInformation, "Aviso"
End Sub
Segue o código adaptado (só consigo transferir apenas 1 registro e quando vou transferir outro, o access trava:
Public Sub tabExonerar(cod As Long)
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT * FROM Tabela1 WHERE codigo=" & cod
Set rs = CurrentDb.OpenRecordset(strSQL)
Set rs2 = CurrentDb.OpenRecordset("Lista_de_Exonerados")
Do While Not rs.EOF
rs2.AddNew
rs2!Matrícula = rs!Matrícula
rs2!Nome = rs!Nome
rs2!Cargo = rs!Cargo
rs2!Função = rs!Função
rs2!Símbolo = rs!Símbolo
rs2!Lotação = rs!Lotação
Do While Not rs2.EOF
Loop
rs2.Update
rs.MoveNext
Loop
rs2.Close
rs.Close
Set rs2 = Nothing
Set rs = Nothing
CurrentDb.Execute "Delete * from Tabela1 where codigo=" & cod
MsgBox "Dados transferidos para a tabela Exonerados. Abra a tabela e verifique....", vbInformation, "Aviso"
End Sub
Última edição por visible em 11/11/2021, 13:51, editado 2 vez(es)