Se ha producido un error '13' en tiempo de ejecución : No coinciden los tipos

No se donde esta el fallo, lo he mirado de todas maneras, por favor necesito urgentemente cual es el fallo, muchas gracias de antemano, os mando el código

''Activar referencia ADO

Dim rst1 As New ADODB.Recordset ''instanciamos el recordset
Dim rst2 As New ADODB.Recordset ''instanciamos el recordset
Dim cadena, cadena2
''abrimos los recordset
rst1.Open "[pueblos]", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rst2.Open "[territorios]", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

rst2.MoveFirst ''nos movemos al primer registro del primer recodset

Do While Not rst2. EOF ''mientras no estemos por debajo del último registro itera
rst1. MoveFirst ''Nos movemos al primer registro del segundo recordset
Do While Not rst1.EOF ''mientras no estemos por debajo del último registro itera
If rst2.Fields("id_pueblo").Value And rst2.Fields("pueblo").Value = rst1.Fields("num_terri").Value And rst1.Fields("pueblo").Value Then 'Si los dos códigos coinciden actualizamos  ( Aqui sale el error )
MsgBox "pueblos id pue = " & rst1.Fields("Id_pue") & "pueblos num_terri = " & rst1.Fields("Id_pue") & "pueblos pueblo = " & rst1.Fields("pueblo") & Chr(13) & _
"territorios id pue = " & rst2.Fields("Id_pue") & "territorios id_pueblo = " & rst2.Fields("id_pueblo") & "territorios pueblo = " & rst2.Fields("pueblo")
rst2.Fields("Id_pue") = rst1.Fields("Id_pue").Value
End If
rst1.MoveNext
Loop
rst2.MoveNext
Loop

MsgBox "Se han traspasado los datos con exito", vbInformation, "Aviso..."
rst1.Close ''cerramos
rst2.Close ''cerramos
Set rst1 = Nothing ''liberamos recursos
Set rst2 = Nothing ''libermos recursos

End Sub

1 respuesta

Respuesta

If rst2.Fields("id_pueblo").Value [ aquí falta un comparativo]  

And

rst2.Fields("pueblo").Value = rst1.Fields("num_terri").Value

And

rst1.Fields("pueblo").Value [aqui falta otro comparativo]

Then

Por regla se comparan dos valores con =, >, <, >=, <=, etc. 

Ahora si tu objetivo es comparar de rst1 con rst2 debería ser:

If rst2.Fields("id_pueblo").Value = rst1.Fields("num_terri").Value

And

rst2.Fields("pueblo").Value =  rst1.Fields("pueblo").Value

Then

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas