Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/06/2010, 09:52
Avatar de JavierMMM
JavierMMM
 
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 16 años, 3 meses
Puntos: 0
Exclamación Consultar Campo Vacio de una BD

Hola a todos... Estoy trabajando en la creación de una encuesta, la cual ya funciona, pero quedó un poco limitada al momento de grabar las respuestas (por la premura de la implementación). Resulta que cuando un reactivo no es contestado, en mi tabla de respuestas no se agrega nada, esto es, se contestas las preguntas 1,2,3,5,6,... las respuestas se graban:

idpregunta | respuesta
1|resp1
2|resp2
3|resp3
5|resp5
6|resp6
... |resp...

cuando muestro los resultados se hace de la sig manera:

Reactivo 1: pregunta


Reactivo 2: pregunta
No

Reactivo 3:pregunta
<------ NADA ME MUESTRA PUESTO QUE NO HAY EXISTE EN LA BD

Reactivo 4: pregunta
LO DESCUBRÍ EN GOOGLE

....

al hacer la consulta, quiero poner una leyenda de "NO CONTESTADO" en cada respuesta que no esté en la BD, pero no he sabido cómo

Puse la siguiente condición en el ciclo de respuestas:
Código:
for i=1 to 3
%><b><%
   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 "Reactivo " & DBresp("Idpregunta") & ": " & DBresp("Pregunta") &  "<br />"
		DBresp.movenext
		%></b><%
	loop	
DBresp.Close

for j=1 to 3
  DBresp.open "Select B.Idpregunta, B.Posrespuesta From ((Respuestas A left join Posrespuesta B on (A.Idpregunta = B.Idpregunta)) left 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  B.Idpregunta, B.Posrespuesta", Con
  Do While not DBresp.eof'Inicia el ciclo de respuestas
	If (DBresp("Idpregunta") <> i) Then
		response.Write("NO SE CONTESTO")
	Else
		response.Write DBresp("Posrespuesta")
	End If
	DBresp.movenext
	%><br /><br /><%
  loop
  DBresp.Close
Next
%></b><%			
Next
y me muestra las respuestas existentes, pero nunca me imprime response.Write("NO SE CONTESTO")...

¿Alguién tiene una ídea de cómo puedo resolver este detalle?

Gracias de antemano.

Nota: no es opción por el momento modificar al momento de guardar la encuesta.