Combinar datos de dos tablas mediante do while

Agradezco mucho la ayuda y el tiempo que dedican a ayudarnos. Estoy tratando de combinar los datos de dos tablas, en ambas tablas tengo nombres de municipios, pero quiero trasladar el código del municipio que está en la tabla Municipios a la tabla TPEMAR, cuando ejecuto el código se queda trabajando largo tiempo y tengo que interrumpir el programa, selecciono depurar y marca en amarillo el End if. Adjunto el código.

Private Sub CodNacimi_Click()

Dim db As Database

Dim rs1 As Recordset

Dim rs2 As Recordset

Dim VMuNac As String

Set db = CurrentDb

Set rs1 = db.OpenRecordset("Select * From Municipios Order by NombreMunicipio")

Set rs2 = db.OpenRecordset("Select * From TPEMAR Order by MuNac")

rs1.MoveFirst

Do While Not rs1.EOF()

    rs2.MoveFirst

    Do While Not rs2.EOF()

            If rs1!NombreMunicipio = rs2!MuNac Then

                rs2.Edit

                rs2!Cod_MuNac = rs1!CodigoMunicipio

                rs2.Update

                rs2.MoveNext

            End If

            rs2.MoveNext

     Loop

     rs1.MoveNext

Loop

Rs1. Close

Rs2. Close

End Sub

1 respuesta

Respuesta
3

¿Por qué no usas consultas de actualización, en vez de recorrer el segundo recordset para cada registro del primero?

Sería una cosa así:

Private Sub CodNacimi_Click()

Dim db As Database

Dim rs1 As Recordset

Dim VMuNac As String

Dim miSQL As String

Set db = CurrentDb

Set rs1 = db.OpenRecordset("Select * From Municipios Order by NombreMunicipio")

rs1.MoveFirst

Do While Not rs1.EOF()

    miSQL="UPDATE TPEMAR SET Cod_MuNac=" & rs1!CodigoMunicipio & " WHERE MuNac='" & rs1!NombreMunicipio & "'"

     rs1.MoveNext

Loop

rs1.Close

End Sub

¡Gracias! Intenté con el código que me pasaste, pero tengo un problema de recursos de memoria, probaré en otro equipo y te cuento.

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas