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

Problema con fechas y buscador web

Estas en el tema de Problema con fechas y buscador web en el foro de ASP Clásico en Foros del Web. Buenos dias, mi problema es el siguiente. Estoy intentando paginar los resultados de una consulta en asp. Los datos los coge del form y no ...
  #1 (permalink)  
Antiguo 07/07/2009, 03:58
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Problema con fechas y buscador web

Buenos dias,

mi problema es el siguiente.
Estoy intentando paginar los resultados de una consulta en asp. Los datos los coge del form y no hay ningun problema al visualizar la primera pagina de resultados pero a partir de ahi empiezan los problemas ya que no le pasa ningun valor.
He estado mirando la opcion de pasar la sql como variable de sesion, pero me sobrepasa ahora mismo el concepto.
Tambien la de construir la sql a traves de una cadena, pero a la hora de paginar los resultados de una consulta entre fechas sacadas en dos variables de un formulario me casca, sobre todo por el metodo que utilizo para convertir las fechas en "legibles" para la base de datos de access a la que me conecto.
Uso la siguiente accion:
Cita:
f1=request.form("fecha11")
fe1 = Split(f1,"/")
mes = fe1(1)
dia = fe1(0)
anyo = fe1(2)
fecha1= mes &"/"& dia &"/"& anyo
f2=request.form("fecha22")
fe2 = Split(f2,"/")
mes = fe2(1)
dia = fe2(0)
anyo = fe2(2)
fecha2= mes &"/"& dia &"/"& anyo
Espero vuestra ayuda ya que me esta volviendo un poco loco el tema,

Gracias de antemano,

Alex
  #2 (permalink)  
Antiguo 07/07/2009, 04:21
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Problema con fechas y buscador web

Hola, bienvenido al foro

No he entendido muy bien cual es el problema. Dando palos de ciego

Código asp:
Ver original
  1. f1=request.form("fecha11")
  2. fe1 = Split(f1,"/")
  3. mesf1 = fe1(1)
  4. diaf1 = fe1(0)
  5. anyof1 = fe1(2)
  6. fecha1= CDate(mesf1 &"/"& diaf1 &"/"& anyof1)
  7. f2=request.form("fecha22")
  8. fe2 = Split(f2,"/")
  9. mes = fe2(1)
  10. dia = fe2(0)
  11. anyo = fe2(2)
  12. fecha2= CDate(mes &"/"& dia &"/"& anyo)

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;" />
  #3 (permalink)  
Antiguo 07/07/2009, 04:32
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con fechas y buscador web

Gracias por la bienvenida.

Creo que no me he explicado del todo bien pero la prisa por terminar este proyecto no me esta dejando ni pensar.
El tema es que estoy haciendo un buscador en asp para que me de todos los resultados entre un rango de fechas de mi base de datos.
La "funcion" que te comento arriba es con la que consigo convertirla fecha en formato para hacer la select a access.
El problema lo tengo a la hora de paginar los datos.
Me pagina perfectamente la primera pagina pero las demas me da error ya que no es capaz de pasarle los valores a la sql.

Dejo el codigo de mi paginacion:
Cita:
<%
on error resume next
Dim mostrar 'cantidad de registros a mostrar por página
Dim cant_paginas 'cantidad de páginas que recibimos
Dim pagina_actual 'La página que mostramos
Dim registro_mostrado 'Contador utilizado para mostrar las páginas
Dim I 'Variable Loop
provincia=request.form("provincia")
mostrar = 10 ' Pueden modificar este número para cambiar la cantidad de registros por página
f1=request.form("fecha11")
fe1 = Split(f1,"/")
mes = fe1(1)
dia = fe1(0)
anyo = fe1(2)
fecha1= mes &"/"& dia &"/"& anyo
f2=request.form("fecha22")
fe2 = Split(f2,"/")
mes = fe2(1)
dia = fe2(0)
anyo = fe2(2)
fecha2= mes &"/"& dia &"/"& anyo
' IF para saber que página mostrar
If Request.QueryString("page") = "" Then
pagina_actual = 1
Else
pagina_actual = CInt(Request.QueryString("page"))
End If
set oConn = server.CreateObject("ADODB.Connection")
oConn.ConnectionString = "DSN=mi dsn"
oConn.open
' Creamos el RecordSet y definimos la cantidad de registros a mostrar
Set RS = Server.CreateObject("ADODB.Recordset")
strsql = "SELECT * FROM TablaReparacion WHERE fechaprevista between #10/10/08# and #15/09/09#;" AQUI ES DONDE DEBERIA DE IR #"&fecha1&"# y #"&fecha2&"# pero no me las admite mas que ma primera pasada.
RS.PageSize = mostrar
RS.CacheSize = mostrar
' Abrimos la tabla...
RS.Open strSQL, oConn,3,1
response.write(strsql)
'contamos las páginas que se formaron con la variable mostrar.
cant_paginas = RS.PageCount

' Si el pedido de página cae afuera del rango,
' lo modificamos para que caiga adentro
If pagina_actual > cant_paginas Then pagina_actual = cant_paginas
If pagina_actual < 1 Then pagina_actual = 1

' Si la cantidad de páginas da 0 es que no hay registros... por eso este IF
If cant_paginas = 0 Then
Response.Write "No hay registros..."
Else
' Nos movemos a la página elegida
RS.AbsolutePage = pagina_actual
' Mostramos el dato de que página estamos...
%>
<FONT SIZE="+1">Page <B><%= pagina_actual %></B> of <B><%= cant_paginas %></B></FONT>
<%
' Espacios
Response.Write "<BR><BR>" & vbCrLf
'iniciamos la tabla donde mostraremos todo
Response.Write "<TABLE BORDER=""1"">" & vbCrLf
' Mostramos los titulos de las columnas... (pueden sacar ese FOR para eliminar eso)
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To RS.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD><B>"
Response.Write RS.Fields(I).Name
Response.Write "<B></TD>" & vbCrLf
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf

' Hacemos el bucle mostrando los datos del registro
registro_mostrado = 0
Do While registro_mostrado < mostrar And Not RS.EOF
Response.Write vbTab & "<TR>" & vbCrLf
For I = 0 To RS.Fields.Count - 1
Response.Write vbTab & vbTab & "<TD>"
Response.Write RS.Fields(I)
Response.Write "</TD>" & vbCrLf
Next 'I
Response.Write vbTab & "</TR>" & vbCrLf

' Sumamos 1 a los mostrados
registro_mostrado = registro_mostrado + 1
' Nos movemos al próximo registro...
RS.MoveNext
Loop

'listo...
Response.Write "</TABLE>" & vbCrLf
End If

' Cerramos y limpiamos...
RS.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing

' Ahora mostramos los enlaces a las otras páginas con el resto de los registros...
If pagina_actual > 1 Then
%>
<a href="./paginar.asp?eje=30&page=<%= pagina_actual - 1 %>">[<< Anterior]</a>
<%
End If

' mostramos la paginacion por numeros de página
For I = 1 To cant_paginas
If I = pagina_actual Then
%>
<%= I %>
<%
Else
%>
<a href="./paginar.asp?eje=30&page=<%= I %>"><%= I %></a>
<%
End If
Next 'I

If pagina_actual < cant_paginas Then
%>

<a href="./paginar.asp?eje=30&page=<%= pagina_actual + 1 %>">[Próximo >>]</a>
<%
End If
'Fin...
%>
  #4 (permalink)  
Antiguo 07/07/2009, 06:22
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Problema con fechas y buscador web

Hola

El problema está en que no le estás pasando los parámetros. Haces esto

Cita:
<a href="./paginar.asp?eje=30&page=<%= pagina_actual + 1 %>">[Próximo >>]</a>
cuando debería de ser algo como

Cita:
<a href="./paginar.asp?eje=30&page=<%= pagina_actual + 1 %>&fecha11=<%=fechaincio%>&fecha22=<%=fechafinal% >">[Próximo >>]</a>
después los recoges. Tu haces esto

Cita:
f1=request.Form("fecha11")
f2=request.Form("fecha22")
cuando deberías de hacer

Cita:
f1=request("fecha11")
f2=request("fecha22")
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;" />
  #5 (permalink)  
Antiguo 08/07/2009, 02:02
 
Fecha de Ingreso: mayo-2009
Mensajes: 21
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con fechas y buscador web

Gracias por tu atención, creo que redigiré un poco la solución ya que no lo veo nada claro.
Voy a empezar a pensarlo desde cero.

Un saludo,

Alex
  #6 (permalink)  
Antiguo 08/07/2009, 02:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 21
Antigüedad: 16 años
Puntos: 0
Paginación de consulta

Buenos dias,

llevo ya unos dias intentando esto e incluso hubo alguna pregunta por este foro al respecto pero creo que es mejor exponer el caso desde el principio.

¿Como paginariais una consulta donde los criterios de busqueda son variables de un formulario? por ejemplo:
Cita:

numero1=request.form("n1")
numero2=request.form("n2")
sql= "select * from tabla where numero between "&numero1&" and "&numero2&";"
o con fechas que es la idea original:
Cita:
f1=request.form("fecha1")
fe1 = Split(f1,"/")
mes = fe1(1)
dia = fe1(0)
anyo = fe1(2)
fecha1= mes &"/"& dia &"/"& anyo
f2=request.form("fecha2")
fe2 = Split(f2,"/")
mes = fe2(1)
dia = fe2(0)
anyo = fe2(2)
fecha2= mes &"/"& dia &"/"& anyo
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "dsn"
cantidadregistros=50
if request.querystring("paginaactual")<>"" then
mostrarpagina=request.querystring("paginaactual")
else
mostrarpagina=1
end if
Set rs = server.CreateObject("ADODB.Recordset")
SQL_mostrar="SELECT * FROM TablaReparacion where fechaprevista between #"&fecha1&"# and #"&fecha2&"# order by FechaPrevista desc;"
rs.cachesize=60
rs.Open SQL_mostrar,objConn, 3, 3
He probado varios metodos de paginacion pero siempre llego al mismo problema.

Por ejemplo en mi caso necesito que de una select que incluye dos valores variables sea capaz de moverse ya que solo me aparece la primera pagina y cuando intento moverme por las siguientes paginas me desaparece el valor de las variables en la cadena del SQL.

Un saludo y a ver si hay suerte porque estoy un poco desesperado.
Gracias de antemano.
  #7 (permalink)  
Antiguo 08/07/2009, 06:36
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Paginación de consulta

Hola

¿Estás duplicando mensajes?

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;" />
  #8 (permalink)  
Antiguo 08/07/2009, 10:34
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: Problema con fechas y buscador web

Cita:
Iniciado por mecos2009 Ver Mensaje
Gracias por tu atención, creo que redigiré un poco la solución ya que no lo veo nada claro.
Voy a empezar a pensarlo desde cero.

Un saludo,

Alex
no lo pienses desde 0

solo haz lo que dice alder es la respuesta correcta

el problema es que el filtro en la pagina 1 se hace correctamente

en las de mas paginas no envias las variables por eso es que te esta mostrando otros valores
__________________
JuanRa Pérez
San Salvador, El Salvador
  #9 (permalink)  
Antiguo 09/07/2009, 04:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 21
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con fechas y buscador web

Gracias por todo.

Al final ya encontré la solución, que me habia quedado muy estancado y la solución la tenia delante de mis narices.

Muchas gracias por vuestra ayuda.
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 08:00.