ayuda con el codigo de una encuesta

20/11/2003 - 15:00 por donperrocc | Informe spam
HOla, ojala podais ayudarme.
cuando intento ver el resultado de la encuesta me
sale,"icrosoft JET Database Engine (0x80004005)
La operación debe usar una consulta actualizable".



este es el codigo,a ver si me podeis decir que puedo






correjir.
este es el del formulario, encu.asp
<HTML>
<HEAD></HEAD>
<BODY BGCOLOR="#A4EEEE">
<P ALIGN="center">
<FORM METHOD="post" ACTION="encu2.asp">
¿Qué programa usas para escribir tus scripts?<BR><BR>
Notepad: <INPUT NAME="mismo" TYPE="Radio" VALUE="1"><BR>
HomeSite: <INPUT NAME="mismo" TYPE="Radio" VALUE="2"><BR>
Visual Interdev: <INPUT NAME="mismo" TYPE="Radio"
VALUE="3"><BR>
DreamWeaber: <INPUT NAME="mismo" TYPE="Radio"
VALUE="4"><BR><BR>
<INPUT TYPE="Submit" VALUE="Votar!">
</FORM>
<P>
</BODY>
</HTML>


ahora es el del resultado, encu2.asp

<%@ Language=VBScript%>
<%'Verificamos que efectivamente alguien haya votado.
If Request.Form = "" then Response.Redirect "encu.asp" %>
<HTML>
<HEAD>
<TITLE>Encuesta con ASP</TITLE>
</HEAD>
<BODY BGCOLOR="#A4EEEE" STYLE="font-size; font-family:
Verdana">
<P ALIGN="center">
<%
'guardamos en voto la info del formulario.
voto = Request.Form("mismo")
'Conectamos a la BD.
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source="& Server.MapPath("./base_encuesta.mdb")
'Con una sentencia SQL pedimos toda la BD.
Set RS = Server.CreateObject("ADODB.RecordSet")
sql = "SELECT * FROM encuesta"
RS.Open sql, oConn
'si no hay registros, creamos unos con datos nulos.
If RS.EOF then
oConn.Execute "INSERT INTO encuesta
(dato1,dato2,dato3,dato4) VALUES (0,0,0,0)"
RS.Requery
End If
'Comenzamos el chequeo de datos. Para todos igual
If voto = "1" then
'Si se cumple el IF, sumamos uno al campo
correspondiente.
oConn.Execute "UPDATE encuesta SET Dato1 = "&RS
("Dato1")+1&" "
'La siguiente linea hace un Refresh en la Tabla,
para tener los datos recientes.
RS.Requery
Response.Write "<BR>Voto sumado a NotePad<BR>"
ElseIf voto = "2" then
oConn.Execute "UPDATE encuesta SET Dato2 = "&RS
("Dato2")+1&" "
RS.Requery
Response.Write "<BR>Voto sumado a HomeSite<BR>"
ElseIf voto = "3" then
sql = "UPDATE encuesta SET Dato3 = "&RS("Dato3")
+1&""
oConn.Execute sql
RS.Requery
Response.Write "<BR>Voto sumado a Visual
Interdev<BR>"
ElseIf voto = "4" then
oConn.Execute "UPDATE encuesta SET Dato4 = "&RS
("Dato4")+1&" "
RS.Requery
Response.Write "<BR>Voto sumado a DreamWeaber<BR>"
End If

'Sumamos todos los votos y los guardamos en una variable.
total = CInt(RS("Dato1"))+CInt(RS("Dato2"))+CInt(RS
("Dato3"))+CInt(RS("Dato4"))
'Mostrar el gráfico.
%>
<BR><TABLE ALIGN="center" WIDTH="90%" BORDER="1"
CELLPADDING="0" BORDERCOLOR="#669966" CELLSPACING="1"
STYLE="font-size; font-family: Verdana">
<TR><TD STYLE="font size:12"><IMG HEIGHT="25"
SRC="pic_gris.gif" BORDER="1" WIDTH="<%= CInt(RS("Dato1")
*100/total)%>%"></TD></TR>
<TR><TD STYLE="font size:12"><IMG HEIGHT="25"
SRC="pic_gris.gif" BORDER="1" WIDTH="<%= CInt(RS("Dato2")
*100/total)%>%"></TD></TR>
<TR><TD STYLE="font size:12"><IMG HEIGHT="25"
SRC="pic_gris.gif" BORDER="1" WIDTH="<%= CInt(RS("Dato3")
*100/total)%>%"></TD></TR>
<TR><TD STYLE="font size:12"><IMG HEIGHT="25"
SRC="pic_gris.gif" BORDER="1" WIDTH="<%= CInt(RS("Dato4")
*100/total)%>%"></TD></TR>
</TABLE>
<TABLE ALIGN="center" STYLE="font-size; font-family:
Verdana">
<TR><TD ALIGN="center">
<A HREF="encu.asp">Volver a la encuesta</A>
</TD></TR>
</TABLE>
<%'Limpiamos y cerramos todo.
RS.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing
%>
</P>
</BODY>
</HTML>
 

Leer las respuestas

#1 antonio periago
20/11/2003 - 16:55 | Informe spam
pregunta mejor en microsoft.public.es.asp

un saludo,
antonio



"donperrocc" escribió en el mensaje
news:048c01c3af6e$b063f4f0$
HOla, ojala podais ayudarme.
cuando intento ver el resultado de la encuesta me
sale,"icrosoft JET Database Engine (0x80004005)
La operación debe usar una consulta actualizable".
este es el codigo,a ver si me podeis decir que puedo






correjir.
este es el del formulario, encu.asp
<HTML>
<HEAD></HEAD>
<BODY BGCOLOR="#A4EEEE">
<P ALIGN="center">
<FORM METHOD="post" ACTION="encu2.asp">
¿Qué programa usas para escribir tus scripts?<BR><BR>
Notepad: <INPUT NAME="mismo" TYPE="Radio" VALUE="1"><BR>
HomeSite: <INPUT NAME="mismo" TYPE="Radio" VALUE="2"><BR>
Visual Interdev: <INPUT NAME="mismo" TYPE="Radio"
VALUE="3"><BR>
DreamWeaber: <INPUT NAME="mismo" TYPE="Radio"
VALUE="4"><BR><BR>
<INPUT TYPE="Submit" VALUE="Votar!">
</FORM>
<P>
</BODY>
</HTML>


ahora es el del resultado, encu2.asp

<%@ Language=VBScript%>
<%'Verificamos que efectivamente alguien haya votado.
If Request.Form = "" then Response.Redirect "encu.asp" %>
<HTML>
<HEAD>
<TITLE>Encuesta con ASP</TITLE>
</HEAD>
<BODY BGCOLOR="#A4EEEE" STYLE="font-size; font-family:
Verdana">
<P ALIGN="center">
<%
'guardamos en voto la info del formulario.
voto = Request.Form("mismo")
'Conectamos a la BD.
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source="& Server.MapPath("./base_encuesta.mdb")
'Con una sentencia SQL pedimos toda la BD.
Set RS = Server.CreateObject("ADODB.RecordSet")
sql = "SELECT * FROM encuesta"
RS.Open sql, oConn
'si no hay registros, creamos unos con datos nulos.
If RS.EOF then
oConn.Execute "INSERT INTO encuesta
(dato1,dato2,dato3,dato4) VALUES (0,0,0,0)"
RS.Requery
End If
'Comenzamos el chequeo de datos. Para todos igual
If voto = "1" then
'Si se cumple el IF, sumamos uno al campo
correspondiente.
oConn.Execute "UPDATE encuesta SET Dato1 = "&RS
("Dato1")+1&" "
'La siguiente linea hace un Refresh en la Tabla,
para tener los datos recientes.
RS.Requery
Response.Write "<BR>Voto sumado a NotePad<BR>"
ElseIf voto = "2" then
oConn.Execute "UPDATE encuesta SET Dato2 = "&RS
("Dato2")+1&" "
RS.Requery
Response.Write "<BR>Voto sumado a HomeSite<BR>"
ElseIf voto = "3" then
sql = "UPDATE encuesta SET Dato3 = "&RS("Dato3")
+1&""
oConn.Execute sql
RS.Requery
Response.Write "<BR>Voto sumado a Visual
Interdev<BR>"
ElseIf voto = "4" then
oConn.Execute "UPDATE encuesta SET Dato4 = "&RS
("Dato4")+1&" "
RS.Requery
Response.Write "<BR>Voto sumado a DreamWeaber<BR>"
End If

'Sumamos todos los votos y los guardamos en una variable.
total = CInt(RS("Dato1"))+CInt(RS("Dato2"))+CInt(RS
("Dato3"))+CInt(RS("Dato4"))
'Mostrar el gráfico.
%>
<BR><TABLE ALIGN="center" WIDTH="90%" BORDER="1"
CELLPADDING="0" BORDERCOLOR="#669966" CELLSPACING="1"
STYLE="font-size; font-family: Verdana">
<TR><TD STYLE="font size:12"><IMG HEIGHT="25"
SRC="pic_gris.gif" BORDER="1" WIDTH="<%= CInt(RS("Dato1")
*100/total)%>%"></TD></TR>
<TR><TD STYLE="font size:12"><IMG HEIGHT="25"
SRC="pic_gris.gif" BORDER="1" WIDTH="<%= CInt(RS("Dato2")
*100/total)%>%"></TD></TR>
<TR><TD STYLE="font size:12"><IMG HEIGHT="25"
SRC="pic_gris.gif" BORDER="1" WIDTH="<%= CInt(RS("Dato3")
*100/total)%>%"></TD></TR>
<TR><TD STYLE="font size:12"><IMG HEIGHT="25"
SRC="pic_gris.gif" BORDER="1" WIDTH="<%= CInt(RS("Dato4")
*100/total)%>%"></TD></TR>
</TABLE>
<TABLE ALIGN="center" STYLE="font-size; font-family:
Verdana">
<TR><TD ALIGN="center">
<A HREF="encu.asp">Volver a la encuesta</A>
</TD></TR>
</TABLE>
<%'Limpiamos y cerramos todo.
RS.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing
%>
</P>
</BODY>
</HTML>

Preguntas similares