aki lo que pasa es que al ejecutar tu primera sentencia... todo bien, pero cuando realizas el "NO", jamas cierras la consulta anterior

es que andas queriendo realizar una consulta sobre otra consulta abierta, y logicamente se bloquea
ahora, en construir sentencias ando oxidado....
pero podrias construir una sentencia, donde preguntes directamente si el campo es "si", y te evitas el realizar la siguiente busqueda

(
ahi me sacrifican si no estoy correcto)
Código ASP:
Ver originalsqltxt="SELECT id as id_aux, flag FROM Productos Where id = "&id_var&" and flag = si"
quiero pensar que es "SI" en ese campo
realizas muchas consultas, cuando podrias unirla en una sola, y te evitarias tantos pasos