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

esto ya me gano

Estas en el tema de esto ya me gano en el foro de ASP Clásico en Foros del Web. no se porque pero este codigo: Código: <%response.expires=-1000%> <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("encuestas.mdb")) if request.form("opcion")<>"" then select case true case request.form("opcion")=0 ...
  #1 (permalink)  
Antiguo 19/04/2005, 16:56
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
esto ya me gano

no se porque pero este codigo:
Código:
<%response.expires=-1000%>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("encuestas.mdb"))


if request.form("opcion")<>"" then


	select case true

	case request.form("opcion")=0
 	  campo="r1"
	case request.form("opcion")=1
		campo="r2"
	case request.form("opcion")=2
   		campo="r3"
	case request.form("opcion")=3
   		campo="r4"
	end select    

	sqltxt="update encuestas set "&campo&" = "&campo&"+1 where activa=True"
	
	conn.execute sqltxt
end if
%>

<html>

<head>

<title>La encuesta</title>
</head>

<body>
<%if request.form("opcion")<>"" then%>
<p align="center">Muchas gracias por participar en la encuesta<br><br>

<%end if
dim colores(3)
colores(0)="black"
colores(1)="black"
colores(2)="black"
colores(3)="black"
tamatabla=400  'tamaño de la tabla



set rs=createobject("ADODB.Recordset")
sqltxt="SELECT  * from encuestas where activa=true"
rs.open sqltxt,conn
if not rs.EOF then
%>

<div align="center">
  <center>
  <table border="1" width="<%=tamatabla%>">
    <tr>
      <td width="<%=tamatabla%>">
        <p align="center"><%=rs("pregunta")%></td>
    </tr>
    <tr>
      <td width="<%=tamatabla%>">
      
        <table border="0" width="<%=tamatabla%>">
         <%totvotos=rs("r1")+rs("r2")+rs("r3")+rs("r4")
         if totvotos< 1 then totvotos=1
         for i = 0 to rs("nopciones")-1 step 1	%>
         <%porcentaje=formatnumber(rs(i+4)*100/totvotos,2)%>
          <tr>
           <td width="<%=tamatabla*30/100%>" valign="top"><b><%=rs(i)%><br><%=porcentaje%>%</td>       
           <td width="<%=tamatabla*70/100%>">
            <table border="0" width="<%=round(porcentaje)%>%" bgcolor="<%=colores(i)%>">
             <tr>  
              <td width="100%"></td>
                </tr>
              </table>
            </td>
          </tr> 
          <%next
            
%>
        </table>
       

      </td>
    </tr>
    <tr>
      <td width="300">
        <p align="center"><font face="Verdana" size="1"><b>Total de  votos: <font color="#FF0000"><%=totvotos%></font> </b></font></p>
      </td>
    </tr>
    <%if rs("inicio")<>"" then%> 

    <tr>
      <td width="300">
        <font face="Verdana" size="1">Fecha de inicio: <%=rs("inicio")%></font>
      </td>
    </tr><%end if%>

    <%if rs("fin")<>"" then%> 
    <tr>
      <td width="300">
        <font face="Verdana" size="1">Fecha de cierre: <%=formatdatetime(rs("fin"),2)%></font>
      </td>
    </tr>
    <%end if%>
  </table>
  </center>
</div>
<%rs.close
set conn = nothing
end if%>
<p align="center"><font face="Verdana" size="1"><a href="javascript:close();">Cerrar ventana</a></font></p>
<p align="center"><font face="Verdana" size="1"><a href="historico.asp">Ver todas las encuestas</a></font></p>
</body>

</html>
me tira este error
Error de Microsoft VBScript en tiempo de ejecución error '800a000d'
No coinciden los tipos: '[string: "¿Cuál es la mejor ba"]'

/Attackmetal/encuestas/verencuesta.asp, line 70
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #2 (permalink)  
Antiguo 19/04/2005, 17:23
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
totvotos=cint(rs("r1")+rs("r2")+rs("r3")+rs("r4"))
  #3 (permalink)  
Antiguo 19/04/2005, 17:30
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
ninguna de las dos funciona, me tira el mismo error...
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #4 (permalink)  
Antiguo 19/04/2005, 17:58
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
en esto no me habia fijado:
de donde sale ¿Cuál es la mejor ba. Puede ser que dentro de rs("r1")..o r2 o r3 o r4 esté la pregunta? es lo que parece.
  #5 (permalink)  
Antiguo 19/04/2005, 19:01
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
es que la pregunta esta en un campo que se llama pregunta... los rs son solo las respuestas... asique no se porque me tira ese error
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #6 (permalink)  
Antiguo 19/04/2005, 21:55
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 4 meses
Puntos: 2
me parece conocida esa encuesta, jejeje yo la modifique asi
pruebala

Código:
totvotos=CINT(rs("r1"))+CINT(rs("r2"))+CINT(rs("r3"))+CINT(rs("r4"))
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #7 (permalink)  
Antiguo 20/04/2005, 02:01
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
No estoy seguro de lo que te voy a decir, pero mira la cantidad de texto que has limitado en el campo de la pregunta, en la tabla de la base de datos. Pudiera ser que en la BD el límite del tamaño del campo pregunta fuese de 255 caracteres, o de 100 caracteres, o los que hayas puesto, ...y en la pregunta que introduces, es posible que la cantidad de caracateres supere ese límite. Quizás por eso te de error.

Como a mí también me suena esa encuesta, aquí te añado una pequeña modificación, para el caso de que nadie vote la encuesta, y al pinchar en encuestas históricas, no te salga en el total de votos emitidos: 1 (que es el que sale por defecto):

Código:
'Añadir esta línea para que no salga 1, cuando nadie vota
'y accede a las encuestas históricas (donde se incluye también
'la encuesta en curso)
if totvotos< 1 then sinvotaciones="si"
if totvotos< 1 then totvotos=1
Luego, más abajo, donde muestras el total de votos emitidos, yo puse esto:
Código:
Votos totales emitidos: <%if sinvotaciones="si" then
				response.write "0"
			else
				response.write totvotos
			end if%>
  #8 (permalink)  
Antiguo 20/04/2005, 02:26
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Cita:
Iniciado por trasgukabi
en esto no me habia fijado:
de donde sale ¿Cuál es la mejor ba. Puede ser que dentro de rs("r1")..o r2 o r3 o r4 esté la pregunta? es lo que parece.
Esto lo puse porque en la linea donde da el error se compara totvotos y en el error pone lo de ¿Cuál es la mejor ba. ¿no se le estará asignando a totvotos el valor de una pregunta por equivocación?
  #9 (permalink)  
Antiguo 20/04/2005, 03:10
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
Si mi block de notas no me engaña, la línea nº 70 es esta:
Código:
<%porcentaje=formatnumber(rs(i+4)*100/totvotos,2)%>
El tipo de dato de r1, r2, r3, y r4 (en la BD), debe ser numérico. ¿No lo habrás puesto como de tipo texto?.

Si nadie hubiera votado r1, r2, r3, y r4 valdrían cero. Como totvotos=1 en el caso de que nadie vote: 0/1 sería cero ---> 0,00% para cada respuesta dada.

En el caso de que hubiesen votado r1, r2, r3, y r4 tendrían un valor X, Y, W, Z. Con lo que X/totvotos siempre sería un numerillo.
  #10 (permalink)  
Antiguo 20/04/2005, 03:14
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
pensaba que era la que él mismo había puesto en negrita.
if totvotos< 1 then totvotos=1
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 00:59.