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

Consulta entre fechas y palabras

Estas en el tema de Consulta entre fechas y palabras en el foro de ASP Clásico en Foros del Web. Hola soy nuevo en este foro y espero aprender mucho aqui y por que no aportar de lo poco que se. Bueno no soy master ...
  #1 (permalink)  
Antiguo 06/11/2006, 12:00
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 7 meses
Puntos: 0
Consulta entre fechas y palabras

Hola soy nuevo en este foro y espero aprender mucho aqui y por que no aportar de lo poco que se.

Bueno no soy master en asp pero ahi voy haciendo mis primeras pruebas pero tengo la siguiente pregunta.

Sql = "Select * From tabla Where nota LIKE '%"&palabra&"%' or titulo LIKE '%"&palabra&"%' And fecha >= #" & fecha1 & "# And fecha <= #" & fecha2 & "# "

bueno como podran ver esta consulta busca una palabra en tre dos fechas y si hace su función perfectamente pero ahi viene la bronca que en el formulario si solo marco las fechas y no pongo nada en la palabra a buscar me manda todos los registros como puedo evitar esto,,,,

En teoria solo me tendria que mandar todos los registros que esten entre las dos fechas marcadas no todos los registros espero me puedan ayudar....
  #2 (permalink)  
Antiguo 06/11/2006, 14:29
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Construye tu consulta dinamicamente

Código:
argCount = 0
qry = "SELECT * from tabla"

if len(palabra) > 0 then 
  if argCount > 0 then
   qry = qry & " AND "
  else
   qry & qry & " WHERE "
  end if
  qry = qry & "nota LIKE '%"&palabra&"%' or titulo LIKE '%"&palabra&"%' "
  argCount = argCount + 1
end if
Y asi sucesivamente...

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 06/11/2006, 15:42
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 7 meses
Puntos: 0
gracias u_goldman vere si me sale como comento no soy muy bueno para esto de asp pero no se ve muy dificil..
  #4 (permalink)  
Antiguo 15/11/2006, 15:15
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 7 meses
Puntos: 0
Bueno aqui le sigo con mi dudo tengo la misma consulta...

Sql = "Select * From tabla Where nota LIKE '%"&buscar&"%' or titulo LIKE '%"&buscar&"%' or fuente LIKE '%"&buscar&"%' And fecha >= #" & Actual & "# And fecha <= #" & Actual2 & "# "

Aqui la cosa que si encuentra la palabra en algun registro le vale si la fecha esta entre las que se le mandarón como puedo hacer para que esto no pase.
  #5 (permalink)  
Antiguo 15/11/2006, 16:15
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Trata una instrucción BETWEEN

AND (fecha BETWEEN fecha_inicial AND fecha_final)
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 15/11/2006, 23:12
 
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 116
Antigüedad: 20 años, 8 meses
Puntos: 1
Cita:
Iniciado por Demian_18 Ver Mensaje

Sql = "Select * From tabla Where nota LIKE '%"&palabra&"%' or titulo LIKE '%"&palabra&"%' And fecha >= #" & fecha1 & "# And fecha <= #" & fecha2 & "# "
Hola en tu cadeana debes agrupar que se evaluara primero ya que en tu cadena no esta evaluando correctamente seria mas o menos asi:

sql = "select * from tabla where (nota like '%"&palabra&"%' or titulo like '%&palabra&%') AND (fecha >= fecha1 and fecha <= fecha2)"

con los parentesis estas diciendo que se evalue por separado la comparacion de las palabras y ademas este en un rango de fechas, claro tambien puedes usar BETWEEN con te lo dijeron antes, pero siempre agrupando entre parentesis ya que en tu cadena primero evalua las fechas lueo el resultado evalua con la palabra y por eso no te devuelve lo que pides, espero te sirva.

Saludos
__________________
"El viento puede soplar fuerte, pero la montaña no lo reverencia"
  #7 (permalink)  
Antiguo 16/11/2006, 10:04
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 7 meses
Puntos: 0
Gracias a los dos en realidad use el consejo de Gusys ya que el otro no lo uspe aplicar jeje bueno gracias y disculpen las molesias...
  #8 (permalink)  
Antiguo 16/11/2006, 11:42
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 7 meses
Puntos: 0
Bueno les sigo agradeciendo a los dos por su ayuda pero ahora tengo otra consulta espero que ya sea la ultima jejeje....

Bueno ya me quedo haci mi consulta....

Sql = "Select * From tabla Where (nota LIKE '%"&buscar&"%' or titulo LIKE '%"&buscar&"%' or fuente LIKE '%"&buscar&"%') And (fecha >= #" & Actual & "# And fecha <= #" & Actual2 & "#)"

Ahora quiero ver como se le hace para decir cuantos registros encontro.

Espero su ayuda tan cordial y magnifica como siempre...
  #9 (permalink)  
Antiguo 16/11/2006, 12:29
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 7 meses
Puntos: 0
Bueno pues ya encontre loq ue buscaba de contar los registros obtenidos si a alguien le sirve aqui le pongo lo que hice...

Sql = "Select count(*) as cuantos From tabla Where fecha >= #" & Actual & "# And fecha <= #" & Actual2 & "#"
Set RS2 = Conexion.Execute (Sql)
cuantos=rs2.fields("cuantos")


y ese cuantos lo puse asi en mi página <%=cuantos %> y lsito me da el resultado...
  #10 (permalink)  
Antiguo 17/11/2006, 10:53
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 7 meses
Puntos: 0
Bueno pues sigo con algunos detalles que aun no he podido resolver...

Cuando muestro las fechas de los registros pasa algo curiosa..

cuando comprenden los dias del 1 al 9 me muestra asi..

8/12/2005

como le tengo que hacer para que me muestre el dia 8 con un cero antes..

08/12/2005

Espero me puedan ayudar...
  #11 (permalink)  
Antiguo 17/11/2006, 13:27
Avatar de FiNo  
Fecha de Ingreso: octubre-2004
Ubicación: Costa Rica
Mensajes: 265
Antigüedad: 19 años, 8 meses
Puntos: 1
fecha_con_formato = right("00"&month(fecha),2)&"/"&right("00"&day(fecha),2)&"/"&right("0000"&year(fecha),4)

Y en las condiciones por fechas, utiliza el between como dijo u_goldman
__________________
3S-CRM
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 00:18.