que bien se entiende cuando explicas lo que quieres no? 
 
solo aparece una vez el "TEMA_NOMBRE" porque esta fuera del while, si estuviera dentro del while aparecería varias veces....  
entonces 
opcion 1
usas condicionantes dentro del while
- algo asi como
  - crear una variable
  - colocarle el contenido de TEMA_NOMBRE
  - si al entrar de nuevo al while es igual, no se imprime, hasta que sea diferente
  - tomar las consideraciones necesarias para tus variables de impresión
  
opcion 2
hacer dos recorsert 
- primer recordset que imprima en rs TEMA_NOMBRE
  - dentro de el while del primer recordset que imprima las que pertenezcan a TEMA_NOMBRE
  - cerrar segundo recordset
  - loop al 1 primer recordset
  
suerte