Hice algunas modificaciones dentro del ciclo anidado y me funciona parcialmente. Lo que hago ahora es lo siguiente:
Código:
for i=1 to 3
DBresp.open "Select A.Idpregunta, C.Pregunta From (Respuestas A left join Posrespuesta B on (A.Idpregunta = B.Idpregunta)) left join Preguntas C on (A.Idpregunta = C.Idpregunta) Where A.Idpregunta = "& i &" and C.Idpregunta = "& i &" Group By A.Idpregunta, C.Pregunta", Con
Do While not DBresp.eof'Inicia el ciclo de preguntas
response.write "<b>Reactivo " & DBresp("Idpregunta") & ": " & DBresp("Pregunta") & "</b><br />"
DBresp.movenext
loop
DBresp.Close
for j=1 to 3
Rs.Open "Select A.Idpregunta as AR, C.Idpregunta as AP, B.Idpregunta as APR, B.Posrespuesta From ((Respuestas A left outer join Posrespuesta B on (A.Idpregunta = B.Idpregunta)) left outer join Preguntas C on (A.Idpregunta = C.Idpregunta)) left join Regcontestada D on (A.Idcont = D.Idcont) Where A.respuesta = '"& j &"' and A.Idpregunta = "& i &" and B.Punpreg = '"& j &"' and C.Idpregunta = "& i &" and D.Carrera = '"& idinst &"' Group By A.Idpregunta, C.Idpregunta, B.Idpregunta, B.Posrespuesta Order By B.Idpregunta", Con
if Not Rs.EOF Then
response.Write(Rs("Posrespuesta")) & "</b><br />"
f=Rs("Posrespuesta")
Rs.movenext
Rs.Close
exit for
else if Rs.EOF Then
response.Write("No se contestó") & "</b><br />"
end if
end if
Rs.close
Next
Next
Lo que pasa en el ciclo anidado es, que recorre el rs y va imprimiendo lo que encuentra, y lo que no, pues imprime "No se contestó". Hasta ahí todo bien en funcionamiento de lo que está programado, pero no en cuestión de visualización,. porque algunas veces el registro se encuentra la la posición 3, así que imprime
"No se contestó"
"No se contestó"
8
y esto no debe de verse.
Mi pregunta viene en el sentido de, ¿cómo puedo hacerle para que me recorra el rs en su totalidad y si encuentra un registro lo imprima en pantalla y cuando no, ponga una sola vez la leyenda "No se contestó"?
Gracias por su ayuda.