Pues no sé si es por el vino de la bodega de Sepulman o si es que programar tocando a fin de año no puede ser sano, pero yo no veo el do while... tal y tal en ningún sitio
Intenta poner el bucle entero desde que abres el recordset hasta que lo cierras, pero quitándole el html irrelevante porque sino va a ser confuso y eterno.