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

Filtrar Resultados con Combos

Estas en el tema de Filtrar Resultados con Combos en el foro de ASP Clásico en Foros del Web. Hola, muy buenas noches. Les escribo porque deseo realizar una búsqueda en ASP filtrando con Combos. Consistiría básicamente en una página donde con un desplegable ...
  #1 (permalink)  
Antiguo 20/12/2008, 17:14
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 1
Exclamación Filtrar Resultados con Combos

Hola, muy buenas noches.

Les escribo porque deseo realizar una búsqueda en ASP filtrando con Combos. Consistiría básicamente en una página donde con un desplegable (combo) seleccionases una "asignatura", en otro igual, un "curso", le dieras a realizar búsqueda con un botón submit, y EN LA MISMA PÁGINA te mostrara en una tabla los resultados, con un <%while not rs.eof rs.movenext wend%>.

El problema surge que no sólo puedes elegir una asignatura o un curso, también debe haber una posibilidad de buscar por todos los cursos. En la sentencia SQL, si eliges "Todos los cursos" o "Todas las asignaturas" en el WHERE no debe poner la condición de que la asignatura o curso sea ESA o ESE. Creo que me explico bien, es un poco lioso pero bueno...

Básicamente habría que construirse una cadena (la llamamos por ejemplo micadena) y en el rs.open le pondriamos rs.open "select * from la_tabla where " & micadena & " ORDER BY lo_que_sea DESC".

El construir esta cadena dependiendo que se elige es un poco complicada, espero podáis echarme una mano, porque sabiendo esto luego quiero ampliar la búsqueda añadiendo unos calendarios para elegir las fechas entre las que quiero buscar.

Nada más, espero sus respuestas. Me es algo urgente.

Un saludo ;)
  #2 (permalink)  
Antiguo 20/12/2008, 19:19
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Filtrar Resultados con Combos

........

que tanto codigo llevas y como lo estas tratando??????
__________________
"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 21/12/2008, 11:55
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Respuesta: Filtrar Resultados con Combos

Hola nemesixxx,

Fijate en esta búsqueda (estilo filtro) que tengo en mi sitio a ver si se adapta a lo que quieres:

http://www.tuflete.com/buscar_camiones.asp

Si es así te paso el código y lo adaptamos.

Saludos,
Luis
  #4 (permalink)  
Antiguo 21/12/2008, 19:01
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Filtrar Resultados con Combos

Bien, pues al haber en total 4 posibilidades he creado 4 rs.open "select....." atendiendo a lo que pone el usuario.

Tengo un campo fecha de tipo Fecha/Hora que es Fecha General, en Access. La forma de presentarlo lo hace con barras ("/") y dia/mes/año, pues he hecho pruebas con Response.Write y demás.

Este es el código de una de las sentencias:

Código asp:
Ver original
  1. rs.open "select * from pedidos where idusuarios="&session("id") &" AND fechaimpresion is not NULL AND asignatura = '" & Request.form("cmbasignaturas") &"' AND curso = '" & Request.form("cmbcursos") &"' AND fechaimpresion BETWEEN #"& request.form("txtfechainicial") &"# AND  #"& request.form("txtfechainicial") &"#",cnn,3,3

Es una búsqueda de un pedido atendiendo a la Asignatura y Curso seleccionados, que el campo "fechaimpresion" tenga algo (halla sido impreso) y que el campo "fechaimpresion" además esté entre esos valores.

Decir que en "txtfechainicial" y "txtfechafinal" al hacer clic en el campo de texto me abre un calendario donde marcas el día, mes y año y te cambia el valor de la caja de texto por "dia/mes/año" seleccionado, en este formato "dd/mm/yyyy".

A ver si podéis ayudarme, yo es que el código lo veo bien. Un saludo!!
  #5 (permalink)  
Antiguo 22/12/2008, 07:13
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Respuesta: Filtrar Resultados con Combos

Hola

¿Te da algún error? ¿No hace lo que esperas que hiciera? ¿No le faltan las comillas simples a las fechas?

'#"& request.form("txtfechainicial") &"#' AND '#"& request.form("txtfechainicial") &"#'

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #6 (permalink)  
Antiguo 22/12/2008, 08:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Filtrar Resultados con Combos

Efectivamente, no hace lo que yo esperaba. Tengo 2 pedidos entre las fechas 1 de diciembre y 31 de diciembre y no me los muestra.

Al ponerle las comillas simples, me ha tirado este error:

Código asp:
Ver original
  1. Microsoft JET Database Engine error '80040e07'
  2.  
  3. No coinciden los tipos de datos en la expresión de criterios.
  4.  
  5. /falces/fotocopias/admin/gesfotocopias/buscar.asp, línea 25

Las fechas en ASP creo que van entre almohadillas, por eso lo había dejado nada más que con almohadillas, es decir, algo como lo siguiente: #dd/mm/yyyy#.

A ver si entre todos lo sacamos jeje! Un saludo y gracias por responder.
  #7 (permalink)  
Antiguo 22/12/2008, 09:37
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Filtrar Resultados con Combos

... nemesis.... muestra la fraccion de codigo que usas para la consulta, para poder ayudarte mejor

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #8 (permalink)  
Antiguo 22/12/2008, 09:51
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Filtrar Resultados con Combos

Esto es el código de la búsqueda:

Código asp:
Ver original
  1. <%
  2. if session("nombre")="" or session("nivel")<1 then
  3.     response.Redirect("index.asp")//lo llevo a la página de login
  4. end if
  5.  
  6.     set cnn=server.CreateObject("ADODB.Connection")
  7.     set rs=server.CreateObject("ADODB.Recordset")
  8.     set rsasignaturas=server.CreateObject("ADODB.Recordset")
  9.     set rscursos=server.CreateObject("ADODB.Recordset")
  10.     ruta=server.MapPath("../db/bd.mdb")
  11.     cnn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ruta & ";User Id=admin;Password=;"
  12.     miasignatura=Request.Form("cmbasignaturas")
  13.     micurso=Request.Form("cmbcursos")
  14.    
  15. If miasignatura="0" AND micurso="0" Then
  16. 'esto es si seleccionan todas las asignaturas asignatura y todos los cursos
  17.     rs.open "select * from pedidos where idusuarios="&session("id") &" AND fechaimpresion is not NULL AND fechaimpresion BETWEEN #"& request.form("fechainicial") &"# AND  #"& request.form("fechainicial") &"#",cnn,3,3
  18.     ElseIf miasignatura="0" AND micurso<>"0" Then
  19.     'esto es si seleccionan todas las asignaturas y un curso
  20.     rs.open "select * from pedidos where idusuarios="&session("id") &" AND fechaimpresion is not NULL AND curso = '" & Request.form("cmbcursos") &"' AND fechaimpresion BETWEEN #"& request.form("fechainicial") &"# AND  #"& request.form("fechainicial") &"#",cnn,3,3
  21.         ElseIf miasignatura<>"0" AND micurso="0" Then
  22.             'esto es si seleccionan una asignatura y todos los cursos
  23.         rs.open "select * from pedidos where idusuarios="&session("id") &" AND fechaimpresion is not NULL AND asignatura = '" & Request.form("cmbasignaturas") &"' AND fechaimpresion BETWEEN #"& request.form("fechainicial") &"# AND  #"& request.form("fechainicial") &"#",cnn,3,3
  24.         Else
  25.             'esto es si seleccionan una asignatura y un curso
  26.         rs.open "select * from pedidos where idusuarios="&session("id") &" AND fechaimpresion is not NULL AND asignatura = '" & Request.form("cmbasignaturas") &"' AND curso = '" & Request.form("cmbcursos") &"' AND fechaimpresion BETWEEN #"& request.form("fechainicial") &"# AND  #"& request.form("fechainicial") &"#",cnn,3,3
  27. End If
  28. %>

Y así es como lo "pinto" en la tabla:

Código asp:
Ver original
  1. <table width="634" border="0" align="center" class="bordetablas">
  2.             <tr class="titular">
  3.               <td width="115"><div align="center">Fecha de impresi&oacute;n</div></td>
  4.               <td width="86"><div align="center">Asignatura</div></td>
  5.               <td width="107"><div align="center">Curso</div></td>
  6.               <td width="143"><div align="center">Concepto</div></td>
  7.               <td width="49"><div align="center">Copias</div></td>
  8.               <td width="74"><div align="center">Hojas/copia</div></td>
  9.               <td width="26"><div align="center">Ver</div></td>
  10.             </tr>
  11. <%while not rs.eof%>
  12.             <tr class="textonormal">
  13.               <td><div align="center"><span class="titular"><span class="textonormal"><%=rs("fechaimpresion")%></span></span></div></td>
  14.               <td><div align="center"><span class="textonormal"><%=rs("asignatura")%></span></div></td>
  15.               <td><div align="center"><span class="textonormal"><%=rs("curso")%></span></div></td>
  16.               <td><div align="center"><span class="textonormal"><%=rs("pedido")%></span></div></td>
  17.               <td><div align="center"><span class="textonormal"><%=rs("copias")%></span></div></td>
  18.               <td><div align="center"><span class="textonormal"><%=rs("originales")%></span></div></td>
  19.               <td><div align="center"><a href="#"><img src="../../images/ver.png" alt="ver" width="16" height="16" border="0" onclick="AbreVentana('recibo.asp?idpedidos=<%=rs("idpedidos")%>')""/></a></div></td>
  20.             </tr>
  21. <%
  22.   rs.movenext
  23.   wend
  24.   %>
  25.     </table>
  #9 (permalink)  
Antiguo 22/12/2008, 15:15
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Respuesta: Filtrar Resultados con Combos

Hola

Prueba con

CDate(request.form("fechainicial"))

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #10 (permalink)  
Antiguo 22/12/2008, 16:03
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Filtrar Resultados con Combos

Nada, que no me sale lo que busco...

A ver si podemos encontrar el error...
  #11 (permalink)  
Antiguo 23/12/2008, 06:08
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Respuesta: Filtrar Resultados con Combos

Hola

Detalles, detalles ...

Código asp:
Ver original
  1. If miasignatura="0" AND micurso="0" Then
  2.  
  3. 'esto es si seleccionan todas las asignaturas asignatura y todos los cursos
  4.  
  5.     rs.open "select * from pedidos where idusuarios="&session("id") &" AND fechaimpresion is not NULL AND fechaimpresion BETWEEN #"& request.form("fechainicial") &"# AND  #"& request.form("txtfechafinal") &"#",cnn,3,3
  6.  
  7.     ElseIf miasignatura="0" AND micurso<>"0" Then
  8.  
  9.     'esto es si seleccionan todas las asignaturas y un curso
  10.  
  11.     rs.open "select * from pedidos where idusuarios="&session("id") &" AND fechaimpresion is not NULL AND curso = '" & Request.form("cmbcursos") &"' AND fechaimpresion BETWEEN #"& request.form("fechainicial") &"# AND  #"& request.form("txtfechafinal") &"#",cnn,3,3
  12.  
  13.         ElseIf miasignatura<>"0" AND micurso="0" Then
  14.  
  15.             'esto es si seleccionan una asignatura y todos los cursos
  16.  
  17.         rs.open "select * from pedidos where idusuarios="&session("id") &" AND fechaimpresion is not NULL AND asignatura = '" & Request.form("cmbasignaturas") &"' AND fechaimpresion BETWEEN #"& request.form("fechainicial") &"# AND  #"& request.form("txtfechafinal") &"#",cnn,3,3
  18.  
  19.         Else
  20.  
  21.             'esto es si seleccionan una asignatura y un curso
  22.  
  23.         rs.open "select * from pedidos where idusuarios="&session("id") &" AND fechaimpresion is not NULL AND asignatura = '" & Request.form("cmbasignaturas") &"' AND curso = '" & Request.form("cmbcursos") &"' AND fechaimpresion BETWEEN #"& request.form("fechainicial") &"# AND  #"& request.form("txtfechafinal") &"#",cnn,3,3
  24.  
  25. End If

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #12 (permalink)  
Antiguo 23/12/2008, 08:22
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Respuesta: Filtrar Resultados con Combos

El error debe estar en un apostrofe o alguna variable que no tiene valor asignado.

Sinceramente yo recomiendo que guardes el SQL en una variable en lugar de ejecutarlo directamente. Me explico:

cambia

rs.open "select *.... por MiSQL= "select *...

y luego, despues del End if de la linea 25 (del ejemplo anterior) pongas esto

response.write(MiSQL)
response.end()
rs.open MiSQL

En principio no ejecutará el sql pero te permitirá verlo para analizarlo. Copialo y pegalo en Access (como consulta) para que te muestre donde está el error. Así vas depurando.

Saludos
  #13 (permalink)  
Antiguo 23/12/2008, 09:08
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Filtrar Resultados con Combos

Adler no me he fijado muy bien que has modificado pero he copiado el código y pegado y YA FUNCIONA !!! Podrías comentarlo... igual era alguna & no sé...

De todas formas, muchísimas gracias a ti y a TODOS por molestarse tanto en que me funcione el filtro de las narices jeje!!

Os deseo muy feliz navidad !!!
  #14 (permalink)  
Antiguo 23/12/2008, 12:35
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Respuesta: Filtrar Resultados con Combos

Hola

Hagamoslo más despacio

BETWEEN #"& request.form("fechainicial") &"# AND #"& request.form("fechainicial") &"#

BETWEEN #"& request.form("fechainicial") &"# AND #"& request.form("txtfechafinal") &"#
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 21:46.