Copiar registros de una tabla a otra tabla n veces

Dudas sobre código
nova123
Nivel 1
Mensajes: 12
Registrado: Sab Ene 09, 2016 9:04 pm

Copiar registros de una tabla a otra tabla n veces

Mensajepor nova123 » Lun Jun 03, 2019 9:58 pm

Hola, Buenas tardes!


Tengo dos tablas (Tabla1 y Tabla2) con los siguientes campos:

Id (autonumérico)y Nombre.

La Tabla2: Id, Adjunto y fecha.
La Tabla2 tiene 365 registros en el campo fecha (los días de un año), mientras los otros campos Id y Adjunto están vacíos

Para copiar los Id y los nombres (Siempre son 8 registros en total) de la Tabla1 a la Tabla2, esto lo consigo con el siguiente código:

Código: Seleccionar todo

Dim db As Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("select * from tabla1")
Set rs2 = db.OpenRecordset("tabla2", dbOpenDynaset)
rs.MoveFirst
Do Until rs.EOF
    rs2.Edit
    rs2.Fields(1).Value = rs("id")
    rs2.Fields(2).Value = rs("Nombre")
    rs2.Update
    rs.MoveNext
    rs2.MoveNext
Loop
rs.Close
rs2.Close
Set rs = Nothing
Set rs2 = Nothing


De esta forma consigo copiar o editar solo los 8 primeros registros de la tabla2, y lo que necesito que se repitan estos hasta el final de los registros.

Avatar de Usuario
McPegasus
VIP
Mensajes: 3
Registrado: Jue Feb 04, 2016 9:49 pm

Re: Copiar registros de una tabla a otra tabla n veces

Mensajepor McPegasus » Lun Jun 10, 2019 4:55 pm

Hola Nova123.

- En el Set rs suelo poner ...(..., dbOpenSnapshot), solo lectura.
- Yo no pongo rs.movefirst ya que estás enviando al primer registro y si no tienes pues puffff, control de errores.

Tú dices:
>> Para copiar los Id y los nombres (Siempre son 8 registros en total) de la Tabla1 a la Tabla2, esto lo consigo con el siguiente código:
>> ...
>>De esta forma consigo copiar o editar solo los 8 primeros registros de la tabla2, y lo que necesito que se repitan estos hasta el final de los registros.

Dices que siempre son 8 registros pero que luego indicas que sólo puedes copiar 8 registros. ¿El total no són 8?.

Aunque yo lo haría con una consulta de actualización 8 veces filtrando por el ID:

- Codedb.execute ("UPDATE [nombre-tabla] SET WHERE [nombre-campo] = [n]")

Prueba y nos comentas.
Rafael .:McPegasus:.
Valencia

..:: Tu Access, Mi Pasión ::..


Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado