Copiar de una tabla a otra usando dos recordsets.

quiero pasar los datos de una tabla a otra.. Y uso dos recordsets.. No da error pero solo me pasa un registro.. Aquí mi código.. En que estoy mal:

Private Sub btn_aceptar_Click()
'Declaramos las variables
Dim RsOrigen As Recordset
Dim RsDestino As Recordset
Dim DB As Database
Dim origen As String
Dim cont As Integer
'Consultamos los datos de origen
origen = "Select * FROM Tbl_Actividades_Aux"
'asignamos cadenas
Set DB = CurrentDb
Set RsOrigen = DB.OpenRecordset(origen, dbOpenDynaset)
Set RsDestino = DB.OpenRecordset("Tbl_Calendario_Actividades_Detalles_L2", dbOpenDynaset)
'pasamos los valores
For cont = 0 To RsOrigen.RecordCount - 1
RsDestino.AddNew
RsDestino!Clave_MesAño = Me.Txt_Calve_MesAño
RsDestino!clave_actividad = RsOrigen.Fields(2).Value
RsDestino!Actividad = RsOrigen.Fields(3).Value
RsDestino!Fecha = RsOrigen.Fields(4).Value
RsDestino.Update
RsOrigen.MoveNext
Next cont
'cerramos los recordsets
RsDestino.Close
RsOrigen.Close
DB.Close
'eliminamos memoria
Set RsDestino = Nothing
Set RsOrigen = Nothing
Set DB = Nothing
End Sub

1 Respuesta

Respuesta
1

Prueba con este código:

...

Private Sub btn_aceptar_Click()
'Declaramos las variables
Dim RsOrigen As Recordset
Dim RsDestino As Recordset
Dim DB As Database
Dim origen As String
'Consultamos los datos de origen
origen = "Select * FROM Tbl_Actividades_Aux"
'asignamos cadenas
Set DB = CurrentDb
Set RsOrigen = DB.OpenRecordset(origen, dbOpenDynaset)
Set RsDestino = DB.OpenRecordset("Tbl_Calendario_Actividades_Detalles_L2", dbOpenDynaset)
'pasamos los valores

RsOrigen.movefirst
Do until RsOrigen.EOF
RsDestino.AddNew
RsDestino!Clave_MesAño = Me.Txt_Calve_MesAño
RsDestino!clave_actividad = RsOrigen.Fields(2).Value
RsDestino!Actividad = RsOrigen.Fields(3).Value
RsDestino!Fecha = RsOrigen.Fields(4).Value
RsDestino.Update
RsOrigen.MoveNext
Loop
'cerramos los recordsets
RsDestino.Close
RsOrigen.Close
DB.Close
'eliminamos memoria
Set RsDestino = Nothing
Set RsOrigen = Nothing
Set DB = Nothing
End Sub

...

A ver si así te lo hace bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas