Ho l'impressione che gli errori siano più di uno.
Se la struttura del tuo database è simile a quella che puoi vedere qui, un ciclo funzionante, oltreché elegante,
per presentare i campi di db il cui nome è contenuto in db2, è:
codice:
db.open "select * from db",conn,2,3
do until db.eof
db2.open "select nome_campo from db2",conn,2,3
do until db2.eof
For Each campo in db.Fields
if campo.name = db2.fields("nome_campo") then
Response.Write (campo.value&"")
end if
next
db2.movenext
loop
db2.close
Response.Write ("
")
db.movenext
loop
db.close
Ovviamente in precedenza avrai creato e aperto la connessione e creato i due recordset, e in seguito distruggerai i recordset e chiuderai e distruggerai la connessione.