Hola de nuevo.
xerifandtomas, he sacado la función del while y ya va todo bien, vaya error mas tonto
Gracias por tu ayuda.
dashtrash, voy a ver si soy capaz de hacerlo ya que me hice un enorme lio de algo tan simple... gracias por tus consejos.
PD: no me ha sido posible citar los mensajes anteriores para responder.