grabar resultados en file

05/01/2006 - 07:50 por Jorge Vega | Informe spam
Saludos a todos, quisiera ver si alguien me puede brindar una ayuda.

Tengo un cuestionario el cuál envía los datos que captura a otra página asp
la cuál primero verifica que vengan todas las respuestas y luego las graba
en una bd, pero quisiera que grabe todas las respuestas a la vez en un
archivo tipo xls/doc/xml/txt en el disco duro del cliente.

La verdad que no tengo ni idea de como poder hacer esto, por eso recurro a
uds para que me puedan orientar.

Adjunto parte del codigo que tengo para ver si me pueden ayudar, de antemano
muchas gracias

<%
SUB errorFormulario(Ferror)
%>
<HTML>
<HEAD><TITLE>ERROR</TITLE></HEAD>
<BODY>
<img src="img/Logo_MH.jpg" width="136" height="122">
<p>
<%=Ferror%>
<p></p><FORM METHOD="POST" ACTION="CUESTIONARIO.asp">
<% FOR EACH item IN Request.Form %>
<br><INPUT name="<%=item%>" type="hidden"
value="<%=Server.HTMLEncode(Request.Form(item))%>">
<%NEXT%>
<p>
</FORM>
</BODY>
</HTML>
<%
Response.End
END SUB
'Recupera los campos del formulario
cedula=TRIM(Request.Form("cedula"))
respuesta1=TRIM(Request.Form("respuesta1"))
respuesta2=TRIM(Request.Form("respuesta2"))
respuesta3=TRIM(Request.Form("respuesta3"))

'Verifica los campos requeridos
IF respuesta1 ="" then
errorFormulario"No seleccionó su respuesta a la pregunta 1."
END IF'
IF respuesta2 ="" then
errorFormulario"No proporcionó su respuesta a la pregunta 2."
END IF
IF respuesta3 ="" then
errorFormulario"No proporcionó su respuesta a la pregunta 3."
END IF
%>

<%
Dim Conexion, Tabla
Set Conexion=Server.CreateObject("ADODB.Connection")
Set Tabla=Server.CreateObject("ADODB.Recordset")
Conexion.Open "Driver={Microsoft Access Driver (*.mdb)};" & "Dbq=" &
Server.MapPath("control.mdb") & "; Password=XXXX"
Dim Temp
Temp="Select * from resultadosWeb where UCase(cedula)='" &
UCase(Request("cedula")) & "' and UCase(respuesta1)='"&
Ucase(Request("respuesta1")) & "' and UCase(respuesta2)='"&

Ucase(Request("respuesta2")) &"'"
Tabla.Open Temp, Conexion,2,3,1
If Tabla.BOF and Tabla.EOF then
Tabla.AddNew
Tabla("cedula")=Request("cedula")
Tabla("respuesta1")=Request("respuesta1")
Tabla("respuesta2")=Request("respuesta2")
Tabla("respuesta3")=Request("respuesta3")
Tabla.Update
%>
<img src="img/Logo_MH.jpg" width="136" height="122">
<br>
<br>
<font face="Tahoma" size="2"><b><i>Se enviaron correctamente los datos.

</i></b></font>
<br>
<br>
Gracias por proporcionar la información!
<br>
<input type="button" name="imprimir" value="Imprimir este reporte"
onclick="window.print();">
<%
Else
Response.Write "Usted ya proporcionó las respuestas anteriormente. "
End if
Tabla.Close
Conexion.Close
%>

<HTML>
<head><title><Gracias></title></head>
<body>
<b>
</body>
</HTML>

Preguntas similare

Leer las respuestas

#1 Dani Castillo
05/01/2006 - 09:25 | Informe spam
Hola!
En el cliente de por si no vas a poder grabar nada automaticamente, no con
asp, ten en cuenta que si se pudiera hacer eso seria un paraiso para los
virus, podrias grabar cualquier cosa (ya que un .exe no deja de ser un
fichero) en el cliente e infectarlo de cualquier virus o troyano... asi que
por motivos de seguridad no se permite guardar nada en el cliente de forma
automatica

de todas formas si que puedes hacer que el fichero de respuestas se envie al
cliente para que lo guarde si quiere y donde quiera (con un mensaje de
"descarga" como si se bajara un fichero del servidor) añadiendo esto como
primeras lineas de un fichero asp:

<% Response.ContentType = "text/plain"
Response.AddHeader( "Content-Disposition", "attachment;
filename=respuesta.txt") %>

todo lo que escribas en response se interpreta como un fichero en el cliente
a descargar

otra opcion seria enviarselo por email claro




"Jorge Vega" escribió en el mensaje
news:O%
Saludos a todos, quisiera ver si alguien me puede brindar una ayuda.

Tengo un cuestionario el cuál envía los datos que captura a otra página
asp
la cuál primero verifica que vengan todas las respuestas y luego las graba
en una bd, pero quisiera que grabe todas las respuestas a la vez en un
archivo tipo xls/doc/xml/txt en el disco duro del cliente.

La verdad que no tengo ni idea de como poder hacer esto, por eso recurro a
uds para que me puedan orientar.

Adjunto parte del codigo que tengo para ver si me pueden ayudar, de
antemano
muchas gracias

<%
SUB errorFormulario(Ferror)
%>
<HTML>
<HEAD><TITLE>ERROR</TITLE></HEAD>
<BODY>
<img src="img/Logo_MH.jpg" width="136" height="122">
<p>
<%=Ferror%>
<p></p><FORM METHOD="POST" ACTION="CUESTIONARIO.asp">
<% FOR EACH item IN Request.Form %>
<br><INPUT name="<%=item%>" type="hidden"
value="<%=Server.HTMLEncode(Request.Form(item))%>">
<%NEXT%>
<p>
</FORM>
</BODY>
</HTML>
<%
Response.End
END SUB
'Recupera los campos del formulario
cedula=TRIM(Request.Form("cedula"))
respuesta1=TRIM(Request.Form("respuesta1"))
respuesta2=TRIM(Request.Form("respuesta2"))
respuesta3=TRIM(Request.Form("respuesta3"))

'Verifica los campos requeridos
IF respuesta1 ="" then
errorFormulario"No seleccionó su respuesta a la pregunta 1."
END IF'
IF respuesta2 ="" then
errorFormulario"No proporcionó su respuesta a la pregunta 2."
END IF
IF respuesta3 ="" then
errorFormulario"No proporcionó su respuesta a la pregunta 3."
END IF
%>

<%
Dim Conexion, Tabla
Set Conexion=Server.CreateObject("ADODB.Connection")
Set Tabla=Server.CreateObject("ADODB.Recordset")
Conexion.Open "Driver={Microsoft Access Driver (*.mdb)};" & "Dbq=" &
Server.MapPath("control.mdb") & "; Password=XXXX"
Dim Temp
Temp="Select * from resultadosWeb where UCase(cedula)='" &
UCase(Request("cedula")) & "' and UCase(respuesta1)='"&
Ucase(Request("respuesta1")) & "' and UCase(respuesta2)='"&

Ucase(Request("respuesta2")) &"'"
Tabla.Open Temp, Conexion,2,3,1
If Tabla.BOF and Tabla.EOF then
Tabla.AddNew
Tabla("cedula")=Request("cedula")
Tabla("respuesta1")=Request("respuesta1")
Tabla("respuesta2")=Request("respuesta2")
Tabla("respuesta3")=Request("respuesta3")
Tabla.Update
%>
<img src="img/Logo_MH.jpg" width="136" height="122">
<br>
<br>
<font face="Tahoma" size="2"><b><i>Se enviaron correctamente los datos.

</i></b></font>
<br>
<br>
Gracias por proporcionar la información!
<br>
<input type="button" name="imprimir" value="Imprimir este reporte"
onclick="window.print();">
<%
Else
Response.Write "Usted ya proporcionó las respuestas anteriormente. "
End if
Tabla.Close
Conexion.Close
%>

<HTML>
<head><title><Gracias></title></head>
<body>
<b>
</body>
</HTML>



Respuesta Responder a este mensaje
#2 Jorge Vega
06/01/2006 - 05:28 | Informe spam
Muchas gracias Dani por tu mensaje.

Entonces se me ocurre que podría utilizar alguna forma para que el archivo
se grabe en el servidor pero que me permita ir agregando las respuestas de
cada uno de las personas que contesten, claro aparte de la base de datos,
estos básicamente porque quiero tener un respaldo adicional de la bd en caso
que algo fallara.




"Dani Castillo" escribió en el mensaje
news:
Hola!
En el cliente de por si no vas a poder grabar nada automaticamente, no con
asp, ten en cuenta que si se pudiera hacer eso seria un paraiso para


los
virus, podrias grabar cualquier cosa (ya que un .exe no deja de ser un
fichero) en el cliente e infectarlo de cualquier virus o troyano... asi


que
por motivos de seguridad no se permite guardar nada en el cliente de forma
automatica

de todas formas si que puedes hacer que el fichero de respuestas se envie


al
cliente para que lo guarde si quiere y donde quiera (con un mensaje de
"descarga" como si se bajara un fichero del servidor) añadiendo esto como
primeras lineas de un fichero asp:

<% Response.ContentType = "text/plain"
Response.AddHeader( "Content-Disposition", "attachment;
filename=respuesta.txt") %>

todo lo que escribas en response se interpreta como un fichero en el


cliente
a descargar

otra opcion seria enviarselo por email claro




"Jorge Vega" escribió en el mensaje
news:O%
> Saludos a todos, quisiera ver si alguien me puede brindar una ayuda.
>
> Tengo un cuestionario el cuál envía los datos que captura a otra página
> asp
> la cuál primero verifica que vengan todas las respuestas y luego las


graba
> en una bd, pero quisiera que grabe todas las respuestas a la vez en un
> archivo tipo xls/doc/xml/txt en el disco duro del cliente.
>
> La verdad que no tengo ni idea de como poder hacer esto, por eso recurro


a
> uds para que me puedan orientar.
>
> Adjunto parte del codigo que tengo para ver si me pueden ayudar, de
> antemano
> muchas gracias
>
> <%
> SUB errorFormulario(Ferror)
> %>
> <HTML>
> <HEAD><TITLE>ERROR</TITLE></HEAD>
> <BODY>
> <img src="img/Logo_MH.jpg" width="136" height="122">
> <p>
> <%=Ferror%>
> <p></p><FORM METHOD="POST" ACTION="CUESTIONARIO.asp">
> <% FOR EACH item IN Request.Form %>
> <br><INPUT name="<%=item%>" type="hidden"
> value="<%=Server.HTMLEncode(Request.Form(item))%>">
> <%NEXT%>
> <p>
> </FORM>
> </BODY>
> </HTML>
> <%
> Response.End
> END SUB
> 'Recupera los campos del formulario
> cedula=TRIM(Request.Form("cedula"))
> respuesta1=TRIM(Request.Form("respuesta1"))
> respuesta2=TRIM(Request.Form("respuesta2"))
> respuesta3=TRIM(Request.Form("respuesta3"))
>
> 'Verifica los campos requeridos
> IF respuesta1 ="" then
> errorFormulario"No seleccionó su respuesta a la pregunta 1."
> END IF'
> IF respuesta2 ="" then
> errorFormulario"No proporcionó su respuesta a la pregunta 2."
> END IF
> IF respuesta3 ="" then
> errorFormulario"No proporcionó su respuesta a la pregunta 3."
> END IF
> %>
>
> <%
> Dim Conexion, Tabla
> Set Conexion=Server.CreateObject("ADODB.Connection")
> Set Tabla=Server.CreateObject("ADODB.Recordset")
> Conexion.Open "Driver={Microsoft Access Driver (*.mdb)};" & "Dbq=" &
> Server.MapPath("control.mdb") & "; Password=XXXX"
> Dim Temp
> Temp="Select * from resultadosWeb where UCase(cedula)='" &
> UCase(Request("cedula")) & "' and UCase(respuesta1)='"&
> Ucase(Request("respuesta1")) & "' and UCase(respuesta2)='"&
>
> Ucase(Request("respuesta2")) &"'"
> Tabla.Open Temp, Conexion,2,3,1
> If Tabla.BOF and Tabla.EOF then
> Tabla.AddNew
> Tabla("cedula")=Request("cedula")
> Tabla("respuesta1")=Request("respuesta1")
> Tabla("respuesta2")=Request("respuesta2")
> Tabla("respuesta3")=Request("respuesta3")
> Tabla.Update
> %>
> <img src="img/Logo_MH.jpg" width="136" height="122">
> <br>
> <br>
> <font face="Tahoma" size="2"><b><i>Se enviaron correctamente los datos.
>
> </i></b></font>
> <br>
> <br>
> Gracias por proporcionar la información!
> <br>
> <input type="button" name="imprimir" value="Imprimir este reporte"
> onclick="window.print();">
> <%
> Else
> Response.Write "Usted ya proporcionó las respuestas anteriormente. "
> End if
> Tabla.Close
> Conexion.Close
> %>
>
> <HTML>
> <head><title><Gracias></title></head>
> <body>
> <b>
> </body>
> </HTML>
>
>
>


Respuesta Responder a este mensaje
#3 Dani Castillo
06/01/2006 - 11:22 | Informe spam
Si es solo por eso, con Filesystemobject tienes para crear ficheros de texto

si la carga no va a ser "excesiva" puedes simplemente grabar el fichero con
nombre la fecha y hora , o mejor aun si has grabado en la base de datos
puedes usar de nombre algun campo autonumerico que te haya creado , etc

para el archivo en el servidor:
http://www.desarrolloweb.com/articu...php?manual

lo unico a tener en cuenta: los permisos de escritura del usuario
ejecutandose en el server (IUSR_nombremaquina) en la carpeta


"Jorge Vega" escribió en el mensaje
news:
Muchas gracias Dani por tu mensaje.

Entonces se me ocurre que podría utilizar alguna forma para que el archivo
se grabe en el servidor pero que me permita ir agregando las respuestas de
cada uno de las personas que contesten, claro aparte de la base de datos,
estos básicamente porque quiero tener un respaldo adicional de la bd en
caso
que algo fallara.




"Dani Castillo" escribió en el mensaje
news:
Hola!
En el cliente de por si no vas a poder grabar nada automaticamente, no
con
asp, ten en cuenta que si se pudiera hacer eso seria un paraiso para


los
virus, podrias grabar cualquier cosa (ya que un .exe no deja de ser un
fichero) en el cliente e infectarlo de cualquier virus o troyano... asi


que
por motivos de seguridad no se permite guardar nada en el cliente de
forma
automatica

de todas formas si que puedes hacer que el fichero de respuestas se envie


al
cliente para que lo guarde si quiere y donde quiera (con un mensaje de
"descarga" como si se bajara un fichero del servidor) añadiendo esto como
primeras lineas de un fichero asp:

<% Response.ContentType = "text/plain"
Response.AddHeader( "Content-Disposition", "attachment;
filename=respuesta.txt") %>

todo lo que escribas en response se interpreta como un fichero en el


cliente
a descargar

otra opcion seria enviarselo por email claro




"Jorge Vega" escribió en el mensaje
news:O%
> Saludos a todos, quisiera ver si alguien me puede brindar una ayuda.
>
> Tengo un cuestionario el cuál envía los datos que captura a otra página
> asp
> la cuál primero verifica que vengan todas las respuestas y luego las


graba
> en una bd, pero quisiera que grabe todas las respuestas a la vez en un
> archivo tipo xls/doc/xml/txt en el disco duro del cliente.
>
> La verdad que no tengo ni idea de como poder hacer esto, por eso
> recurro


a
> uds para que me puedan orientar.
>
> Adjunto parte del codigo que tengo para ver si me pueden ayudar, de
> antemano
> muchas gracias
>
> <%
> SUB errorFormulario(Ferror)
> %>
> <HTML>
> <HEAD><TITLE>ERROR</TITLE></HEAD>
> <BODY>
> <img src="img/Logo_MH.jpg" width="136" height="122">
> <p>
> <%=Ferror%>
> <p></p><FORM METHOD="POST" ACTION="CUESTIONARIO.asp">
> <% FOR EACH item IN Request.Form %>
> <br><INPUT name="<%=item%>" type="hidden"
> value="<%=Server.HTMLEncode(Request.Form(item))%>">
> <%NEXT%>
> <p>
> </FORM>
> </BODY>
> </HTML>
> <%
> Response.End
> END SUB
> 'Recupera los campos del formulario
> cedula=TRIM(Request.Form("cedula"))
> respuesta1=TRIM(Request.Form("respuesta1"))
> respuesta2=TRIM(Request.Form("respuesta2"))
> respuesta3=TRIM(Request.Form("respuesta3"))
>
> 'Verifica los campos requeridos
> IF respuesta1 ="" then
> errorFormulario"No seleccionó su respuesta a la pregunta 1."
> END IF'
> IF respuesta2 ="" then
> errorFormulario"No proporcionó su respuesta a la pregunta 2."
> END IF
> IF respuesta3 ="" then
> errorFormulario"No proporcionó su respuesta a la pregunta 3."
> END IF
> %>
>
> <%
> Dim Conexion, Tabla
> Set Conexion=Server.CreateObject("ADODB.Connection")
> Set Tabla=Server.CreateObject("ADODB.Recordset")
> Conexion.Open "Driver={Microsoft Access Driver (*.mdb)};" & "Dbq=" &
> Server.MapPath("control.mdb") & "; Password=XXXX"
> Dim Temp
> Temp="Select * from resultadosWeb where UCase(cedula)='" &
> UCase(Request("cedula")) & "' and UCase(respuesta1)='"&
> Ucase(Request("respuesta1")) & "' and UCase(respuesta2)='"&
>
> Ucase(Request("respuesta2")) &"'"
> Tabla.Open Temp, Conexion,2,3,1
> If Tabla.BOF and Tabla.EOF then
> Tabla.AddNew
> Tabla("cedula")=Request("cedula")
> Tabla("respuesta1")=Request("respuesta1")
> Tabla("respuesta2")=Request("respuesta2")
> Tabla("respuesta3")=Request("respuesta3")
> Tabla.Update
> %>
> <img src="img/Logo_MH.jpg" width="136" height="122">
> <br>
> <br>
> <font face="Tahoma" size="2"><b><i>Se enviaron correctamente los datos.
>
> </i></b></font>
> <br>
> <br>
> Gracias por proporcionar la información!
> <br>
> <input type="button" name="imprimir" value="Imprimir este reporte"
> onclick="window.print();">
> <%
> Else
> Response.Write "Usted ya proporcionó las respuestas anteriormente. "
> End if
> Tabla.Close
> Conexion.Close
> %>
>
> <HTML>
> <head><title><Gracias></title></head>
> <body>
> <b>
> </body>
> </HTML>
>
>
>






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida