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

Exportar una consulta asp con sql 2000 a Excel

Estas en el tema de Exportar una consulta asp con sql 2000 a Excel en el foro de ASP Clásico en Foros del Web. buenas amigos de foros del web.....tengo la siguiente cosulta: necesito que un formulario de resultados de un buscador me permita mediante un boton que no ...
  #1 (permalink)  
Antiguo 01/11/2007, 21:09
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 17 años, 6 meses
Puntos: 0
Exportar una consulta asp con sql 2000 a Excel

buenas amigos de foros del web.....tengo la siguiente cosulta:
necesito que un formulario de resultados de un buscador me permita mediante un boton que no se.....diga "exportar" y me aparezca un mensaje donde diga "guardar como" y el usuario guarde el informe de la busqueda a un archivo excel...este es el codigo del buscar_clie que manda los datos a val_buscar que procesa la busqueda y muestra los resultados.....la idea mia es que esta ultima pagina, o sea val_buscar tenga el boton para exportar a excel.....este es el codigo del buscador:

BUSCAR_CLIE:
Cita:
<HTML>
<HEAD>
<p>
<title>Buscar Cliente</title>
</head>
<body BACKGROUND ="2.jpg" bgcolor="BLACK" text="BLACK" vlink="BLACK" alink="BLACK">
<font face="verdana">
<br><br><br><br><br>
</font><h2><center>
<font face="verdana"> INGRESE CSR DE Cliente </font>
</center></h2>
<font face="verdana"><center>
<form name="buscar" method="post" action="Scripts/val_buscar_clie.asp">
<font face="verdana">
<table width="824" height="173" border="0" align="center" cellpadding="0" cellspacing="5" class="clsformulario">
<td width="16" height="44">&nbsp;</td>
<td width="118">

<div align="center">
<p><font face="verdana">Csr</font> </p>
<p>
<input name="csr" style="WIDTH: 100px; HEIGHT: 22px" size=18>
</p>
</div></td>
<td width="180">
<div align="center">
<p><font face="verdana">Nombre de Cliente</font>
<input name="nombre_cliente" style="WIDTH: 150px; HEIGHT: 22px" size=80>
</p>
</div></td>
<td width="118">
<div align="center">
<p><font face="verdana">Numero de Serie </font>
<input name="serie" style="WIDTH: 100px; HEIGHT: 22px" size=18>
</p>
</div></td>

<td width="130" height="44"><div align="center"><font face="verdana">Estado</font>
<select name="estado">
<option selected></option>
<option>REVISION</option>
<option>PXR</option>
<option>SCA</option>
<option>DC</option>
<option>OK</option>
<option>ENTREGADO</option>
<option>ENPROCESO</option>
</select>
</div></td>


</table>
</font>
<TR>
<td colspan="2" align="right" valign="middle"><div align="center">
<input id=submit1 type=submit value=Aceptar name=submit1>
</div> </TR>
</form>
</td>
</tr>
</table>
<BR>
<a href="menu.asp" TARGET=_parent> Volver al Menu </a>
</center>
</font>
</body>
</html>

VAL_BUSCAR:
Cita:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<FORM ACTION='Val_buscar.asp' METHOD='GET' id=form1 name=form1>
</HEAD>
<body bgcolor="#FFCC66" background="2.jpg" text="BLACK" link="BLACK" vlink="BLACK" alink="BLACK">
<p align="center">
<%
if Session("id_usuario") = "" then
Response.Write "<SCRIPT LANGUAGE='JAVASCRIPT'>"
Response.Write "top.opener.close()"
Response.Write "</SCRIPT>"
Response.Redirect("Login.Asp")
end if

dim dbConn

'aca recibo los campos que voy a realizar la busqueda
csr = Request.form("csr")
nombre_cliente = Request.form("nombre_cliente")
serie = Request.form("serie")
estado = Request.form("estado")
tecnico = Request.form("tecnico")
On Error Resume next

Const adCmdText = &H0001
Const adOpenStatic = 3


'declaro las variables a utilizar incluyendo la se_encuentra
Dim Rs, Cnn, SQL
set Cnn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
Cnn.Open Session("cnx")

'ejecuto la consulta
strSQL="SELECT *, DateDiff (day, fecha_in ,fecha_ret) as difes, DATEDIFF (DAY, fecha_in, getdate()) as difftot FROM tblcliente"





se_encuentra = False

if se_encuentra then
strSQL=strSQL & " AND tipo_cliente LIKE '%cliente'"
else
strSQL=strSQL & " WHERE tipo_cliente LIKE '%cliente'"
se_encuentra=True
end if




if csr <> "" then
if se_encuentra then
strSQL=strSQL & " AND csr LIKE '%"&csr&"'"
else
strSQL=strSQL & " WHERE csr LIKE '%"&csr&"'"
se_encuentra=True
end if
end if

'la variable se_encuentra se inicializa en falso y se cambia a verdadero si el campo trae un valor ingresado

if distribuidor <> "" then
if se_encuentra then
strSQL=strSQL & " AND nombre_cliente LIKE '%"&nombre_cliente&"'"
else
strSQL=strSQL & " WHERE nombre_cliente LIKE '%"&nombre_cliente&"'"
se_encuentra=True
end if
end if


if serie <> "" then
if se_encuentra then
strSQL=strSQL & " AND serie LIKE '%"&serie&"'"
else
strSQL=strSQL & " WHERE serie LIKE '%"&serie&"'"
se_encuentra=True
end if
end if

if estado <> "" then
if se_encuentra then
strSQL=strSQL & " AND estado LIKE '%"&estado&"'"
else
strSQL=strSQL & " WHERE estado LIKE '%"&estado&"'"
se_encuentra=True
end if
end if

if tecnico <> "" then
if se_encuentra then
strSQL=strSQL & " AND tecnico LIKE '%"&tecnico&"'"
else
strSQL=strSQL & " WHERE tecnico LIKE '%"&tecnico&"'"
se_encuentra=True
end if
end if

rs.Open strSQL,Cnn,adopenstatic,adcmdtext

'abrimos la tabla para llamar los registros



if rs.EOF then
Response.Write("No existe el campo ingresado, verifique los datos")
else %>


<br>
<font face="Bookman Old Style"><em>N&uacute;mero de registros seleccionados:</em></font> <b><%=RS.RecordCount%></b>
<p align="center">
<CENTER>
<TABLE WIDTH=1000height="61" BORDER=1 align="center" CELLSPACING="0">
<tr> <td width=74 bordercolor="#F0F0F0" bgcolor="ORANGE"><center><b>Csr</b></center>
<td width=60 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Nombre Cliente</b></center>
<td width=73 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Fecha Ingreso</b></center>
<td width=122 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Artefacto</b></center>
<td width=83 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Serie</b></center>
<td width=95 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Estado</b></center>
<td width=72 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><p><b>Fecha </b><b>Status</b></p></center>
<td width=59 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Tipo de Garantia</b></center>
<td width=76 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Tecnico Asignado</b></center>
<td width=74 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Diferencia Dias Status</b></center>
<td width=74 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Diferencia Dias Total</b></center>
</tr> </table> </CENTER>

<%do while not rs.EOF%>

<center>
<TABLE BORDER=1 CELLSPACING="0" WIDTH=1000>
<tr>
<%Response.Write "<td WIDTH=80 align='center' >"&rs("csr")&"<td WIDTH=100 align='center'>"&rs("nombre_cliente")&"<td WIDTH=99 align='center'>"&rs("fecha_in")&"<td WIDTH=134 align='center'>"&rs("artefacto")&"<td WIDTH=100 align='center' >"&rs("serie")&"<td WIDTH=80 align='center' >"&rs("estado")&"<td WIDTH=102 align='center' >"&rs("fecha_avi")&"<td WIDTH=102 align='center' >"&rs("fecha_ret")&"<td WIDTH=70 align='center' >"&rs("gtia")&"<td WIDTH=100 align='center' >"&rs("tecnico")&"<td WIDTH=100 align='center' >"&rs("difes")&"<td WIDTH=90 align='center' >"&rs("difftot")%>
<br> </tr>
<%rs.Movenext%>
</table></center>
<%loop

end if


rs.Close

set rs = nothing

Cnn.Close

set oCnn = nothing

%>

<br> <br> <font face="Verdana">
<h3> <center> <a href="../buscar_clie.asp">Buscar Otro</a> </center> </h3>
</font>
<br> <br> <font face="Verdana">
<h3> <center> <a href="../menu.asp">Volver al Menu</a> </center> </h3>
</font>
</body>
</html>

De Antemano muchas gracias.......
  #2 (permalink)  
Antiguo 02/11/2007, 14:45
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Exportar una consulta asp con sql 2000 a Excel

DarkMcLoud
crea con el boton un popup, donde realizes la misma busqueda, y anexale esto a las primeras lineas de la ventana

Cita:
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=Consulta.xls"
con eso deberia funcionarte
:arria:
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 02/11/2007, 20:29
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Exportar una consulta asp con sql 2000 a Excel

compadre........sorry por ser tan novato.....pero no entiendo como hacer lo que dices.....por favor me podrias explicar un poco mejor..........y si no es mucho pedir que me digas donde insertar tu codigo.....y si pudieras....mejor q me postearas el codigo de lo que tu dices por favor
De Antemano muchas gracias
  #4 (permalink)  
Antiguo 03/11/2007, 13:55
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Exportar una consulta asp con sql 2000 a Excel

DarkMcloud

algo asi seria

VAL_BUSCAR.ASP
Cita:
.
.
'tu codigo normal
'en la seccion HEAD, le agregas este Script
<script>
function AbrirVentana(ventana)
{
window.open(ventana,"Consulta","left=25,top=25,too lbar=0,location=1,directories=0,status=1,menubar=0 ,scrollbars=1,resizable=0,copyhistory=0,width=750, height=650")}
</script>

.
.
.
'le anexas esta parte, o modificas esta parte
if request.QueryString("extra")="1" then
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=Consulta.xls"
strSQL=session("SQL_para_EXCEL")
else
'aca recibo los campos que voy a realizar la busqueda
csr = Request.form("csr")
nombre_cliente = Request.form("nombre_cliente")
serie = Request.form("serie")
estado = Request.form("estado")
tecnico = Request.form("tecnico")
'es para crear la consulta en la ventana

'ejecuto la consulta
strSQL="SELECT *, DateDiff (day, fecha_in ,fecha_ret) as difes, DATEDIFF (DAY, fecha_in, getdate()) as difftot FROM tblcliente"

se_encuentra = False

if se_encuentra then
strSQL=strSQL & " AND tipo_cliente LIKE '%cliente'"
else
strSQL=strSQL & " WHERE tipo_cliente LIKE '%cliente'"
se_encuentra=True
end if

if csr <> "" then
if se_encuentra then
strSQL=strSQL & " AND csr LIKE '%"&csr&"'"
else
strSQL=strSQL & " WHERE csr LIKE '%"&csr&"'"
se_encuentra=True
end if
end if

'la variable se_encuentra se inicializa en falso y se cambia a verdadero si el campo trae un valor ingresado
if distribuidor <> "" then
if se_encuentra then
strSQL=strSQL & " AND nombre_cliente LIKE '%"&nombre_cliente&"'"
else
strSQL=strSQL & " WHERE nombre_cliente LIKE '%"&nombre_cliente&"'"
se_encuentra=True
end if
end if

if serie <> "" then
if se_encuentra then
strSQL=strSQL & " AND serie LIKE '%"&serie&"'"
else
strSQL=strSQL & " WHERE serie LIKE '%"&serie&"'"
se_encuentra=True
end if
end if

if estado <> "" then
if se_encuentra then
strSQL=strSQL & " AND estado LIKE '%"&estado&"'"
else
strSQL=strSQL & " WHERE estado LIKE '%"&estado&"'"
se_encuentra=True
end if
end if

if tecnico <> "" then
if se_encuentra then
strSQL=strSQL & " AND tecnico LIKE '%"&tecnico&"'"
else
strSQL=strSQL & " WHERE tecnico LIKE '%"&tecnico&"'"
se_encuentra=True
end if
end if
'se usara la cadena completa, ya armada evitamos volver a relalizar todo el procedimiento de limpiar
'y poder mandarlo a excel inmediatamente

session("SQL_para_EXCEL")=strSQL
end if

rs.Open strSQL,Cnn,adopenstatic,adcmdtext
'abrimos la tabla para llamar los registros

.
.
.
'RESTO DE TU CODIGO
'al final del codigo, agregas este enlace, para abrir la ventana y realizar la consulta sin necesidad de volver a mandarle datos o algo
<h3> <center> <a href="AbrirVentana('val_buscar.asp?extra=1')">EXCE L</a></center> </h3>
.
.
.
lo que haria, es al pulsar el enlace EXCEL, este manda abrir el evento AbrirVentana con un valor("EXTRA") igual a 1 ..... puro formalismo..... esta misma pagina a su ves haria el mismo recorrido en el popup, solo con la diferencia de que haz guardado tu sentencia ya formada en una variable de tipo session y al realizarse de nuevo la consulta, tomaria su valor, evita todos los filtros y despliega el resultado en EXCEL

espero que no haya muchos errores.....
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 03/11/2007, 20:27
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Exportar una consulta asp con sql 2000 a Excel

compadre........te agradezco enormemente tu ayuda....pero hice todo lo que dijiste y me aparece "no se encuentra la pagina".....que podra ser ???

este es el codigo con las modificaciones que tu me diste:

Cita:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<FORM ACTION='val_buscar.asp' METHOD='GET' id=form1 name=form1>


<script>
function AbrirVentana(ventana)
{
window.open(ventana,"Consulta","left=25,top=25,too lbar=0,location=1,directories=0,status=1,menubar=0 ,scrollbars=1,resizable=0,copyhistory=0,width=750, height=650")}
</script>

</HEAD>
<body bgcolor="#FFCC66" background="2.jpg" text="BLACK" link="BLACK" vlink="BLACK" alink="BLACK">
<p align="center">
<%
if Session("id_usuario") = "" then
Response.Write "<SCRIPT LANGUAGE='JAVASCRIPT'>"
Response.Write "top.opener.close()"
Response.Write "</SCRIPT>"
Response.Redirect("Login.Asp")
end if

dim dbConn


if request.QueryString("extra")="1" then
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=Consulta.xls"
strSQL1=session("SQL_para_EXCEL")
else





'aca recibo los campos que voy a realizar la busqueda
csr = Request.form("csr")
nombre_cliente = Request.form("nombre_cliente")
serie = Request.form("serie")
estado = Request.form("estado")
tecnico = Request.form("tecnico")
On Error Resume next

Const adCmdText = &H0001
Const adOpenStatic = 3


'declaro las variables a utilizar incluyendo la se_encuentra
Dim Rs, Cnn, SQL
set Cnn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
Cnn.Open Session("cnx")

'ejecuto la consulta
strSQL="SELECT *, DateDiff (day, fecha_in ,fecha_ret) as difes, DATEDIFF (DAY, fecha_in, getdate()) as difftot FROM tblcliente"





se_encuentra = False

if se_encuentra then
strSQL=strSQL & " AND tipo_cliente LIKE '%cliente'"
else
strSQL=strSQL & " WHERE tipo_cliente LIKE '%cliente'"
se_encuentra=True
end if




if csr <> "" then
if se_encuentra then
strSQL=strSQL & " AND csr LIKE '%"&csr&"'"
else
strSQL=strSQL & " WHERE csr LIKE '%"&csr&"'"
se_encuentra=True
end if
end if

'la variable se_encuentra se inicializa en falso y se cambia a verdadero si el campo trae un valor ingresado

if distribuidor <> "" then
if se_encuentra then
strSQL=strSQL & " AND nombre_cliente LIKE '%"&nombre_cliente&"'"
else
strSQL=strSQL & " WHERE nombre_cliente LIKE '%"&nombre_cliente&"'"
se_encuentra=True
end if
end if


if serie <> "" then
if se_encuentra then
strSQL=strSQL & " AND serie LIKE '%"&serie&"'"
else
strSQL=strSQL & " WHERE serie LIKE '%"&serie&"'"
se_encuentra=True
end if
end if

if estado <> "" then
if se_encuentra then
strSQL=strSQL & " AND estado LIKE '%"&estado&"'"
else
strSQL=strSQL & " WHERE estado LIKE '%"&estado&"'"
se_encuentra=True
end if
end if

if tecnico <> "" then
if se_encuentra then
strSQL=strSQL & " AND tecnico LIKE '%"&tecnico&"'"
else
strSQL=strSQL & " WHERE tecnico LIKE '%"&tecnico&"'"
se_encuentra=True
end if
end if
session("SQL_para_EXCEL")=str1SQL

end if

rs.Open strSQL,Cnn,adopenstatic,adcmdtext
'abrimos la tabla para llamar los registros









if rs.EOF then
Response.Write("No existe el campo ingresado, verifique los datos")
else %>


<br>
<font face="Bookman Old Style"><em>N&uacute;mero de registros seleccionados:</em></font> <b><%=RS.RecordCount%></b>
<p align="center">
<CENTER>
<TABLE WIDTH=1000height="61" BORDER=1 align="center" CELLSPACING="0">
<tr> <td width=74 bordercolor="#F0F0F0" bgcolor="ORANGE"><center><b>Csr</b></center>
<td width=60 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Nombre Cliente</b></center>
<td width=73 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Fecha Ingreso</b></center>
<td width=122 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Artefacto</b></center>
<td width=83 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Serie</b></center>
<td width=95 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Estado</b></center>
<td width=72 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><p><b>Fecha </b><b>Status</b></p></center>
<td width=59 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Tipo de Garantia</b></center>
<td width=76 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Tecnico Asignado</b></center>
<td width=74 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Diferencia Dias Status</b></center>
<td width=74 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Diferencia Dias Total</b></center>
</tr> </table> </CENTER>

<%do while not rs.EOF%>

<center>
<TABLE BORDER=1 CELLSPACING="0" WIDTH=1000>
<tr>
<%Response.Write "<td WIDTH=80 align='center' >"&rs("csr")&"<td WIDTH=100 align='center'>"&rs("nombre_cliente")&"<td WIDTH=99 align='center'>"&rs("fecha_in")&"<td WIDTH=134 align='center'>"&rs("artefacto")&"<td WIDTH=100 align='center' >"&rs("serie")&"<td WIDTH=80 align='center' >"&rs("estado")&"<td WIDTH=102 align='center' >"&rs("fecha_avi")&"<td WIDTH=102 align='center' >"&rs("fecha_ret")&"<td WIDTH=70 align='center' >"&rs("gtia")&"<td WIDTH=100 align='center' >"&rs("tecnico")&"<td WIDTH=100 align='center' >"&rs("difes")&"<td WIDTH=90 align='center' >"&rs("difftot")%>
<br> </tr>
<%rs.Movenext%>
</table></center>
<%loop

end if


rs.Close

set rs = nothing

Cnn.Close

set oCnn = nothing

%>


<h3> <center> <a href="AbrirVentana('val_buscar.asp?extra=1')">EXCE L</a>
</center> </h3>

<br> <br> <font face="Verdana">
<h3> <center> <a href="../buscar_clie.asp">Buscar Otro</a> </center> </h3>
</font>
<br> <br> <font face="Verdana">
<h3> <center> <a href="../menu.asp">Volver al Menu</a> </center> </h3>
</font>
</body>
</html>
por favor !!! ayuda !!!
para que sepas....mi pagina se encuentra en el directorio del localhost con un sitio llamado "bodega" y el val_buscar se encuentra dentro de una carpeta dentro del sitio llamada "scripts"
cuando presiono el boton de excel....me aparece esta ruta en el navegador:

Cita:
http://localhost/bodega/Scripts/AbrirVentana('val_buscar_clie.asp?extra=1'
)

sera ese el problema ???
De antemano muchas gracias y te agradezco que siempre que pregunto algo en el foro eres uno de los primeros en responder.......
  #6 (permalink)  
Antiguo 05/11/2007, 09:55
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Exportar una consulta asp con sql 2000 a Excel

Mcloud, perdona, un error de sintaxis

con esto funcionara
Cita:
<h3> <center> <a href="javascript:AbrirVentana('val_buscar.asp?extra=1');">EXCEL href</a>
</center> </h3>
tambien puedes hacerlo de esta forma
en el evento "onclick"
Cita:
<h3> <center> <a onclick="AbrirVentana('val_buscar.asp?extra=1')">EXCEL href</a>
</center> </h3>
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 05/11/2007, 20:42
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Exportar una consulta asp con sql 2000 a Excel

compadre.........te sigo agradeciendo tu paciencia.....pero aun tengo problemas......resulta que ahora si funciona el boton.....pero me abre una ventana nueva de internet explorer....o sea no me genera el archivo excel......
y mas encima me trae TODOS los registros de la Bdd y no los que yo consulto......AYUDA POR FAVOR!!!!!
no se si sera que me equivoco yo en algo del codigo......pero por si te sirve para saber cual es el error.....este es el codigo:

VAL_BUSCAR.ASP :

Cita:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<FORM ACTION='val_buscar.asp' METHOD='GET' id=form1 name=form1>

<script>
function AbrirVentana(ventana)
{
window.open(ventana,"Consulta","left=25,top=25,too lbar=0,location=1,directories=0,status=1,menubar=0 ,scrollbars=1,resizable=0,copyhistory=0,width=750, height=650")}
</script>

</HEAD>
<body bgcolor="#FFCC66" background="2.jpg" text="BLACK" link="BLACK" vlink="BLACK" alink="BLACK">
<p align="center">

<%
if request.QueryString("extra")="1" then
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=Consulta.xls"
strSQL=session("SQL_para_EXCEL")
else

'aca recibo los campos que voy a realizar la busqueda
csr = Request.form("csr")
nombre_cliente = Request.form("nombre_cliente")
serie = Request.form("serie")
estado = Request.form("estado")
tecnico = Request.form("tecnico")
On Error Resume next

Const adCmdText = &H0001
Const adOpenStatic = 3


'declaro las variables a utilizar incluyendo la se_encuentra
Dim Rs, Cnn, SQL
set Cnn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
Cnn.Open Session("cnx")

'ejecuto la consulta
strSQL="SELECT *, DateDiff (day, fecha_in ,fecha_ret) as difes, DATEDIFF (DAY, fecha_in, getdate()) as difftot FROM tblcliente"

se_encuentra = False

if se_encuentra then
strSQL=strSQL & " AND tipo_cliente LIKE '%cliente'"
else
strSQL=strSQL & " WHERE tipo_cliente LIKE '%cliente'"
se_encuentra=True
end if

if csr <> "" then
if se_encuentra then
strSQL=strSQL & " AND csr LIKE '%"&csr&"'"
else
strSQL=strSQL & " WHERE csr LIKE '%"&csr&"'"
se_encuentra=True
end if
end if

'la variable se_encuentra se inicializa en falso y se cambia a verdadero si el campo trae un valor ingresado

if distribuidor <> "" then
if se_encuentra then
strSQL=strSQL & " AND nombre_cliente LIKE '%"&nombre_cliente&"'"
else
strSQL=strSQL & " WHERE nombre_cliente LIKE '%"&nombre_cliente&"'"
se_encuentra=True
end if
end if


if serie <> "" then
if se_encuentra then
strSQL=strSQL & " AND serie LIKE '%"&serie&"'"
else
strSQL=strSQL & " WHERE serie LIKE '%"&serie&"'"
se_encuentra=True
end if
end if

if estado <> "" then
if se_encuentra then
strSQL=strSQL & " AND estado LIKE '%"&estado&"'"
else
strSQL=strSQL & " WHERE estado LIKE '%"&estado&"'"
se_encuentra=True
end if
end if

if tecnico <> "" then
if se_encuentra then
strSQL=strSQL & " AND tecnico LIKE '%"&tecnico&"'"
else
strSQL=strSQL & " WHERE tecnico LIKE '%"&tecnico&"'"
se_encuentra=True
end if
end if
session("SQL_para_EXCEL")=strSQL
end if


rs.Open strSQL, Cnn,adopenstatic,adcmdtext
'abrimos la tabla para llamar los registros

if rs.EOF then
Response.Write("No existe el campo ingresado, verifique los datos")
else %>


<br>
<font face="Bookman Old Style"><em>N&uacute;mero de registros seleccionados:</em></font> <b><%=RS.RecordCount%></b>
<p align="center">
<CENTER>
<TABLE WIDTH=1000height="61" BORDER=1 align="center" CELLSPACING="0">
<tr> <td width=74 bordercolor="#F0F0F0" bgcolor="ORANGE"><center><b>Csr</b></center>
<td width=60 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Nombre Cliente</b></center>
<td width=73 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Fecha Ingreso</b></center>
<td width=122 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Artefacto</b></center>
<td width=83 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Serie</b></center>
<td width=95 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Estado</b></center>
<td width=72 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><p><b>Fecha </b><b>Status</b></p></center>
<td width=59 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Tipo de Garantia</b></center>
<td width=76 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Tecnico Asignado</b></center>
<td width=74 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Diferencia Dias Status</b></center>
<td width=74 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Diferencia Dias Total</b></center>
</tr> </table> </CENTER>

<%do while not rs.EOF%>

<center>
<TABLE BORDER=1 CELLSPACING="0" WIDTH=1000>
<tr>
<%Response.Write "<td WIDTH=80 align='center' >"&rs("csr")&"<td WIDTH=100 align='center'>"&rs("nombre_cliente")&"<td WIDTH=99 align='center'>"&rs("fecha_in")&"<td WIDTH=134 align='center'>"&rs("artefacto")&"<td WIDTH=100 align='center' >"&rs("serie")&"<td WIDTH=80 align='center' >"&rs("estado")&"<td WIDTH=102 align='center' >"&rs("fecha_avi")&"<td WIDTH=102 align='center' >"&rs("fecha_ret")&"<td WIDTH=70 align='center' >"&rs("gtia")&"<td WIDTH=100 align='center' >"&rs("tecnico")&"<td WIDTH=100 align='center' >"&rs("difes")&"<td WIDTH=90 align='center' >"&rs("difftot")%>
<br> </tr>
<%rs.Movenext%>
</table></center>
<%loop

end if


rs.Close

set rs = nothing

Cnn.Close

set oCnn = nothing

%>


<h3> <center> <a href="javascript:AbrirVentana('val_buscar.asp?extr a=1');">EXCEL</a>
</center> </h3>

<br> <br> <font face="Verdana">
<h3> <center> <a href="../buscar_clie.asp">Buscar Otro</a> </center> </h3>
</font>
<br> <br> <font face="Verdana">
<h3> <center> <a href="../menu.asp">Volver al Menu</a> </center> </h3>
</font>
</body>
</html>

Última edición por darkmcloud; 06/11/2007 a las 07:59
  #8 (permalink)  
Antiguo 06/11/2007, 10:31
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Exportar una consulta asp con sql 2000 a Excel

DarkMcloud, podrias agregar estas lineas,
Cita:
response.write session("SQL_para_EXCEL")
response.end()
antes de esto
Cita:
rs.Open strSQL, Cnn,adopenstatic,adcmdtext
'abrimos la tabla para llamar los registros
y pegar la cadena que te resulta, para saber si se esta guardando la consulta que generas en la primera ves que llegas a la pagina....

algo asi
Cita:
strSQL="SELECT *, DateDiff (day, fecha_in ,fecha_ret) as difes, DATEDIFF (DAY, fecha_in, getdate()) as difftot FROM tblcliente"
mas todo los parametros que le agregas en el formulario anterior
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #9 (permalink)  
Antiguo 06/11/2007, 19:52
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Exportar una consulta asp con sql 2000 a Excel

compadre........segui tus consejos y por ejemplo si busco por el criterio "revision" me aparece el siguiente codigo :
Cita:
SELECT *, DateDiff (day, fecha_in ,fecha_ret) as difes, DATEDIFF (DAY, fecha_in, getdate()) as difftot FROM tblcliente WHERE tipo_cliente LIKE '%cliente' AND estado LIKE '%REVISION'
o sea la consulta esta bien......ademas solucione el otro problema.....era simplemente que yo vinculaba mal el boton de excel......ya que yo uso 2 val_buscar.asp.....
el problema es que ahora me sale el siguiente error cuando vincule correctamente la pagina....Si yo presiono el boton para exportar a excel se me abre una nueva ventana pero me aparece el siguiente error :

Cita:
Error de Microsoft VBScript en tiempo de ejecución (0x800A01A8)
Se requiere un objeto: ''
/bodega/Scripts/val_buscar_clie.asp, línea 103
la linea a la que hace referencia del error es esta:

Cita:
rs.Open strSQL, Cnn,adopenstatic,adcmdtext

este es el codigo bien vinculado pero con la pagina con error:

Cita:
<HTML>
<HEAD>
<script>
function AbrirVentana(ventana)
{
window.open(ventana,"Consulta","left=25,top=25,too lbar=0,location=1,directories=0,status=1,menubar=0 ,scrollbars=1,resizable=0,copyhistory=0,width=750, height=650")}
</script>

</HEAD>
<body bgcolor="#FFCC66" background="2.jpg" text="BLACK" link="BLACK" vlink="BLACK" alink="BLACK">
<p align="center">


<%

if request.QueryString("extra")="1" then
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=Consulta.xls"
strSQL=session("SQL_para_EXCEL")
else

'aca recibo los campos que voy a realizar la busqueda
csr = Request.form("csr")
nombre_cliente = Request.form("nombre_cliente")
serie = Request.form("serie")
estado = Request.form("estado")
tecnico = Request.form("tecnico")
On Error Resume next

Const adCmdText = &H0001
Const adOpenStatic = 3


'declaro las variables a utilizar incluyendo la se_encuentra
Dim Rs, Cnn, SQL
set Cnn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
Cnn.Open Session("cnx")

'ejecuto la consulta
strSQL="SELECT *, DateDiff (day, fecha_in ,fecha_ret) as difes, DATEDIFF (DAY, fecha_in, getdate()) as difftot FROM tblcliente"

se_encuentra = False

if se_encuentra then
strSQL=strSQL & " AND tipo_cliente LIKE '%cliente'"
else
strSQL=strSQL & " WHERE tipo_cliente LIKE '%cliente'"
se_encuentra=True
end if

if csr <> "" then
if se_encuentra then
strSQL=strSQL & " AND csr LIKE '%"&csr&"'"
else
strSQL=strSQL & " WHERE csr LIKE '%"&csr&"'"
se_encuentra=True
end if
end if

'la variable se_encuentra se inicializa en falso y se cambia a verdadero si el campo trae un valor ingresado

if distribuidor <> "" then
if se_encuentra then
strSQL=strSQL & " AND nombre_cliente LIKE '%"&nombre_cliente&"'"
else
strSQL=strSQL & " WHERE nombre_cliente LIKE '%"&nombre_cliente&"'"
se_encuentra=True
end if
end if


if serie <> "" then
if se_encuentra then
strSQL=strSQL & " AND serie LIKE '%"&serie&"'"
else
strSQL=strSQL & " WHERE serie LIKE '%"&serie&"'"
se_encuentra=True
end if
end if

if estado <> "" then
if se_encuentra then
strSQL=strSQL & " AND estado LIKE '%"&estado&"'"
else
strSQL=strSQL & " WHERE estado LIKE '%"&estado&"'"
se_encuentra=True
end if
end if

if tecnico <> "" then
if se_encuentra then
strSQL=strSQL & " AND tecnico LIKE '%"&tecnico&"'"
else
strSQL=strSQL & " WHERE tecnico LIKE '%"&tecnico&"'"
se_encuentra=True
end if
end if
session("SQL_para_EXCEL")=strSQL
end if


rs.Open strSQL, Cnn,adopenstatic,adcmdtext
'abrimos la tabla para llamar los registros

if rs.EOF then
Response.Write("No existe el campo ingresado, verifique los datos")
else %>


<br>
<font face="Bookman Old Style"><em>N&uacute;mero de registros seleccionados:</em></font> <b><%=RS.RecordCount%></b>
<p align="center">
<CENTER>
<TABLE WIDTH=1000height="61" BORDER=1 align="center" CELLSPACING="0">
<tr> <td width=74 bordercolor="#F0F0F0" bgcolor="ORANGE"><center><b>Csr</b></center>
<td width=60 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Nombre Cliente</b></center>
<td width=73 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Fecha Ingreso</b></center>
<td width=122 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Artefacto</b></center>
<td width=83 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Serie</b></center>
<td width=95 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Estado</b></center>
<td width=72 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><p><b>Fecha </b><b>Status</b></p></center>
<td width=59 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Tipo de Garantia</b></center>
<td width=76 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Tecnico Asignado</b></center>
<td width=74 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Diferencia Dias Status</b></center>
<td width=74 bordercolor="#FFFFFF" bgcolor="ORANGE"><center><b>Diferencia Dias Total</b></center>
</tr> </table> </CENTER>

<%do while not rs.EOF%>

<center>
<TABLE BORDER=1 CELLSPACING="0" WIDTH=1000>
<tr>
<%Response.Write "<td WIDTH=80 align='center' >"&rs("csr")&"<td WIDTH=100 align='center'>"&rs("nombre_cliente")&"<td WIDTH=99 align='center'>"&rs("fecha_in")&"<td WIDTH=134 align='center'>"&rs("artefacto")&"<td WIDTH=100 align='center' >"&rs("serie")&"<td WIDTH=80 align='center' >"&rs("estado")&"<td WIDTH=102 align='center' >"&rs("fecha_avi")&"<td WIDTH=102 align='center' >"&rs("fecha_ret")&"<td WIDTH=70 align='center' >"&rs("gtia")&"<td WIDTH=100 align='center' >"&rs("tecnico")&"<td WIDTH=100 align='center' >"&rs("difes")&"<td WIDTH=90 align='center' >"&rs("difftot")%>
<br> </tr>
<%rs.Movenext%>
</table></center>
<%loop

end if


rs.Close

set rs = nothing

Cnn.Close

set oCnn = nothing

%>


<h3> <center> <a href="javascript:AbrirVentana('val_buscar_clie.asp ?extra=1');">EXCEL</a>
</center> </h3>
</body>
</html>

a mi no se......se me ocurre que sera por que no he declarado en el head el lenguaje a utilizar en los scripts....pero al probar declararlos......tambien me sale el mismo error !!! HELP ME COMPADRE!!!

DE ANTEMANO MUCHAS GRACIAS
  #10 (permalink)  
Antiguo 06/11/2007, 20:41
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: Exportar una consulta asp con sql 2000 a Excel

lo que pasa es que no se esta guardando la sentencia SQL, en la variable session("SQL_PARA_EXCEL"), habra que verificar esa parte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #11 (permalink)  
Antiguo 08/11/2007, 21:07
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Exportar una consulta asp con sql 2000 a Excel

compadre Shiryu_Libra......has encontrado la solucion ??? o alguien mas please !!!!
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 10:52.