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 original- sqltxt="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