Retroceder   Foros del Web > Programación para sitios web > ASP Clásico
Crea un nuevo usuario o inicia sesión utilizando tu cuenta de Facebook
Connect with Facebook

Respuesta
 
Herramientas Desplegado
Antiguo 20-dic-2008, 16:14   #1 (permalink)
nemesixxx se está portando bien
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
nemesixxx está desconectado
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 ;)
  Responder Citando
Antiguo 20-dic-2008, 18:19   #2 (permalink)
Colaborador
Shiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbook
 
Avatar de Shiryu_Libra
 
Fecha de Ingreso: febrero-2007
Ubicación: Si preguntas por esto.... "Hay Tabla"... mientras en "En Kirafa Kaput"
Mensajes: 3.480
Enviar un mensaje por MSN a Shiryu_Libra Enviar un mensaje por Yahoo  a Shiryu_Libra Enviar un mensaje por Skype™ a Shiryu_Libra
Shiryu_Libra está desconectado
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
  Responder Citando
Antiguo 21-dic-2008, 10:55   #3 (permalink)
luisvasquez se está portando bien
 
Avatar de luisvasquez
 
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 723
luisvasquez está desconectado
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
  Responder Citando
Antiguo 21-dic-2008, 18:01   #4 (permalink)
nemesixxx se está portando bien
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
nemesixxx está desconectado
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 originalCopiar
  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!!
  Responder Citando
Antiguo 22-dic-2008, 06:13   #5 (permalink)
Adler se está ganando tu confianza
 
Avatar de Adler
 
Fecha de Ingreso: diciembre-2006
Mensajes: 1.308
Adler está desconectado
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
__________________
Vive y dejame vivir o morir como yo quiera
  Responder Citando
Antiguo 22-dic-2008, 07:46   #6 (permalink)
nemesixxx se está portando bien
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
nemesixxx está desconectado
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 originalCopiar
  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.
  Responder Citando
Antiguo 22-dic-2008, 08:37   #7 (permalink)
Colaborador
Shiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbookShiryu_Libra merece que le prestes tu nueva macbook
 
Avatar de Shiryu_Libra
 
Fecha de Ingreso: febrero-2007
Ubicación: Si preguntas por esto.... "Hay Tabla"... mientras en "En Kirafa Kaput"
Mensajes: 3.480
Enviar un mensaje por MSN a Shiryu_Libra Enviar un mensaje por Yahoo  a Shiryu_Libra Enviar un mensaje por Skype™ a Shiryu_Libra
Shiryu_Libra está desconectado
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
  Responder Citando
Antiguo 22-dic-2008, 08:51   #8 (permalink)
nemesixxx se está portando bien
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
nemesixxx está desconectado
Respuesta: Filtrar Resultados con Combos

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

Código asp:
Ver originalCopiar
  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 originalCopiar
  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>
  Responder Citando
Antiguo 22-dic-2008, 14:15   #9 (permalink)
Adler se está ganando tu confianza
 
Avatar de Adler
 
Fecha de Ingreso: diciembre-2006
Mensajes: 1.308
Adler está desconectado
Respuesta: Filtrar Resultados con Combos

Hola

Prueba con

CDate(request.form("fechainicial"))

Suerte
__________________
Vive y dejame vivir o morir como yo quiera
  Responder Citando
Antiguo 22-dic-2008, 15:03   #10 (permalink)
nemesixxx se está portando bien
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
nemesixxx está desconectado
Respuesta: Filtrar Resultados con Combos

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

A ver si podemos encontrar el error...
  Responder Citando
Antiguo 23-dic-2008, 05:08   #11 (permalink)
Adler se está ganando tu confianza
 
Avatar de Adler
 
Fecha de Ingreso: diciembre-2006
Mensajes: 1.308
Adler está desconectado
Respuesta: Filtrar Resultados con Combos

Hola

Detalles, detalles ...

Código asp:
Ver originalCopiar
  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
__________________
Vive y dejame vivir o morir como yo quiera
  Responder Citando
Antiguo 23-dic-2008, 07:22   #12 (permalink)
luisvasquez se está portando bien
 
Avatar de luisvasquez
 
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 723
luisvasquez está desconectado
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
  Responder Citando
Antiguo 23-dic-2008, 08:08   #13 (permalink)
nemesixxx se está portando bien
 
Fecha de Ingreso: diciembre-2008
Mensajes: 16
nemesixxx está desconectado
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 !!!
  Responder Citando
Antiguo 23-dic-2008, 11:35   #14 (permalink)
Adler se está ganando tu confianza
 
Avatar de Adler
 
Fecha de Ingreso: diciembre-2006
Mensajes: 1.308
Adler está desconectado
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") &"#
__________________
Vive y dejame vivir o morir como yo quiera
  Responder Citando
Respuesta
No hay votos aún.
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.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 00:29.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100