hola de nuevo y muchas gracias por vuestra ayuda siempre!! he encontrado el problema, una de las variables se duplicaba sin motivo en cada ejecución, (la q controlaba la salida del bucle de la actualización de la base de datos).
En vez de n2 = DTBD2.rows.count, pongo n2=20 (el número de filas que tiene la base de datos de la q cojo los datos para actualizar) y lo hace perfectamente ya.
De nuevo muchas gracias por vuestro interés y ayuda!!!
Os deseo un estupendo fin de semana