Foros del Web » Programando para Internet » ASP Clásico »

ayuda con error en encuesta

Estas en el tema de ayuda con error en encuesta en el foro de ASP Clásico en Foros del Web. SAQUE ESTA ENCUESTA DE LA WEB , Y ME DA EL SIGUIENTE ERROR ADODB.Field error '800a0bcd' El valor de BOF o EOF es True, o ...
  #1 (permalink)  
Antiguo 15/12/2002, 19:46
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 22 años, 8 meses
Puntos: 0
ayuda con error en encuesta

SAQUE ESTA ENCUESTA DE LA WEB , Y ME DA EL SIGUIENTE ERROR

ADODB.Field error '800a0bcd'

El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.

/servidor/encuesta2/TMP99lfx76vi2.asp, line 37


ES COMO SI LA BASE DE DATOS LOS DATOS NO EXISTIERAN PERO ESTOS ESTAN , REVISE LOS NOMBRES DE LO CAMPOS Y ESTA TODO BIEN POR QUE SALE ESTE ERROR ? PASO EL DOCIGO : LA LINEA 37 ESTA MARCADA -

<%
' encuesta.asp --- Se encarga de presentar y responder encuestas de bd
'Constante con la encuesta, ¡cambiar para hacerlo aleatorio!
Dim objConn, objrs, sSQL, nombre, id, ID_ENCUESTA
Dim accion

set objConn=Server.CreateObject("ADODB.Connection")
set objrs=Server.CreateObject("ADODB.Recordset")
'Abro la conexión
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("interaccion.mdb")
ID_ENCUESTA=2
id=ID_ENCUESTA
accion=CStr(Request.QueryString("accion"))
'Response.Write(id)

select case accion

case "respuesta"
MostrarResultado
case else
MostrarEncuesta id
end select

objrs.Close
set objrs=nothing
objConn.Close
set objConn=nothing

' SUBS&FUNCIONES
'================================================= ======================================
Sub MostrarEncuesta (id)
' Muestra la encuesta 'id' con el titulo y las opciones para votar
Dim titulo, numopciones, I

sSQL="SELECT * FROM encuesta WHERE IdEncuesta="&id&";"
objrs.Open sSQL, objConn
numopciones=objrs.Fields("NumOpciones") LINEA 37 DEL ERROR
Response.Write("<center><b>")
Response.Write(objrs.Fields("Nombre"))
Response.Write("<hr noshade>")
Response.Write("</b>")
Response.Write("<FORM NAME=""Encuesta"" METHOD=""POST"" ACTION=""encuesta.asp?accion=respuesta"">")
Response.Write("<INPUT TYPE=""hidden"" VALUE="&id&" NAME=""Id"">")
for I=1 TO numopciones
' Imprime posibilidades
Response.Write("<center>")
Response.Write("<INPUT TYPE=""radio"" NAME=""Respuesta"" VALUE="""&I&""">"&objrs.Fields("Texto"&I)&" ")
Response.Write("</center>")
next
Response.Write("<br><INPUT TYPE=""submit"" VALUE=""Votar"">")
Response.Write("</FORM></center>")

End Sub 'MostrarEncuesta

'================================================= ==============================================
Sub MostrarResultado

Dim voto, encuesta, numopciones, total, I, porcentaje, rojo, azul, amarillo, verde
Dim aColores(4)

rojo="imagenes/rojo.gif"
azul="imagenes/azul.gif"
amarillo="imagenes/amarillo.gif"
verde="imagenes/verde.gif"

aColores(0)=azul
aColores(1)=verde
aColores(2)=rojo
aColores(3)=amarillo


encuesta=Request.Form("Id")
voto=CInt(Request.Form("Respuesta"))
sSQL="SELECT * FROM encuesta WHERE IdEncuesta="&encuesta&";"
objrs.Open sSQL, objConn, 2, 2

objrs.Fields("Opcion"&voto)=objrs.Fields("Opcion"& voto)+1
objrs.Update

objrs.Requery
objrs.MoveFirst

total=0
numopciones=objrs.Fields("NumOpciones")
for I=1 to numopciones
total=total+objrs.Fields("Opcion"&I)
next

'Muestro resultados:
%>
<b>Resultados de la encuesta:</b><%=objrs.Fields("Nombre")%><br>
<table border="0">
<%
for I=1 to numopciones
porcentaje=CSng((objrs.Fields("Opcion"&I) / total) * 100)
%>
<tr>
<td>
<%=objrs.Fields("Texto"&I)%>
</td>
<td>
<IMG SRC="<%=aColores(I-1)%>" BORDER="0" HEIGHT="15" WIDTH="<%=(300*porcentaje)/100%>">
<%=Left(CStr(porcentaje),6)%>%
</td>
<tr>
<%
next
Response.Write("<small><i>Total de votos:"&total&"</small></i>")
Response.Write("<br>¡Gracias por participar!")
%>
</table>
<br><center><A HREF=default.asp>Volver</A></center>

<%
End Sub 'MostrarResultado


%>
  #2 (permalink)  
Antiguo 16/12/2002, 13:16
(Desactivado)
 
Fecha de Ingreso: agosto-2002
Mensajes: 1.458
Antigüedad: 22 años, 8 meses
Puntos: 0


PARECE QUE EL TEMA ES MAS DIFICIL DE LO QUE PENSE SI TIENEN ALGUN CODIGO PASAMELO.

HUGO
  #3 (permalink)  
Antiguo 16/12/2002, 13:55
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Ese error ocurre cuando el recordset viene vacío e intentás hacer una operación con uno de sus campos o cuando llega a EOF y luego hacés un MoveNext (o estás en BOF y hacés un MovePrevious, es lo mismo)

revisá que realmente el recordset no esté vacío con:



If objrs.BOF AND objrs.EOF then
response.write "no existe la encuesta"
Else
'... tu código afectado aquí
End if
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:33.