Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Comparar fechas

Estas en el tema de Comparar fechas en el foro de Visual Basic clásico en Foros del Web. hola amigos, antes que nada gracias por leer mi duda, hoy descubri un error muy grave en uno de mis formularios de visual basic. estoy ...
  #1 (permalink)  
Antiguo 03/11/2008, 16:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Comparar fechas

hola amigos, antes que nada gracias por leer mi duda, hoy descubri un error muy grave en uno de mis formularios de visual basic. estoy trabajando con una base de datos en access, y estoy controlando fechas, he aqui la sentencia

Set rsad = DB.OpenRecordset("select * from MOVIM where #" & Date & "#>fde order by COD")

yo quisiera q seleccione de mi tabla movim todos los libros que se encuentran vencidos. si los libros vencidos se encuentran en el mismo mes q hago el control se obtiene el resultado esperado, pero no me arroja resultados de meses anteriores.
osea, con esa sentencia me esta dicriminando libros de otros meses, como lo podria solucionar?
espero haberme expresado correctamente...
desde ya muchas gracias...
  #2 (permalink)  
Antiguo 04/11/2008, 02:09
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Comparar fechas

Cita:
Iniciado por hernan_garelli Ver Mensaje
hola amigos, antes que nada gracias por leer mi duda, hoy descubri un error muy grave en uno de mis formularios de visual basic. estoy trabajando con una base de datos en access, y estoy controlando fechas, he aqui la sentencia

Set rsad = DB.OpenRecordset("select * from MOVIM where #" & Date & "#>fde order by COD")

yo quisiera q seleccione de mi tabla movim todos los libros que se encuentran vencidos. si los libros vencidos se encuentran en el mismo mes q hago el control se obtiene el resultado esperado, pero no me arroja resultados de meses anteriores.
osea, con esa sentencia me esta dicriminando libros de otros meses, como lo podria solucionar?
espero haberme expresado correctamente...
desde ya muchas gracias...
Hola, creo que estás haciendo la comparación al revés, el campo de la tabla se llama 'fde', no?

Set rsad = DB.OpenRecordset("select * from MOVIM where fde < #" & Date & "# order by COD")

  #3 (permalink)  
Antiguo 04/11/2008, 04:52
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Comparar fechas

hola amigo valoro mucho tu respuesta, lo cabo de probar y pasa exactamente lo mismo...solo intenta buscar si hay libros de noviembre, y no me tiene en cuenta esta comparacion si hay libros de octubre o antes.. no te imaginas el enojo q tengo conmigo mismo, tengo q presentar este proyecto para rendir en unas semanas y no logro encontrarle la vuelta a este problema..
gracias amigo..
  #4 (permalink)  
Antiguo 04/11/2008, 06:12
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Comparar fechas

Cita:
Iniciado por hernan_garelli Ver Mensaje
hola amigo valoro mucho tu respuesta, lo cabo de probar y pasa exactamente lo mismo...solo intenta buscar si hay libros de noviembre, y no me tiene en cuenta esta comparacion si hay libros de octubre o antes.. no te imaginas el enojo q tengo conmigo mismo, tengo q presentar este proyecto para rendir en unas semanas y no logro encontrarle la vuelta a este problema..
gracias amigo..
Bueno, bueno no desesperes, para (casi) todo hay solución.

Abre la tabla en diseño.
¿Qué 'Tipo de datos' pone en el campo 'fde'?
¿ Tienes algo escrito en las propiedades 'Formato' o 'Máscara de entrada?

  #5 (permalink)  
Antiguo 04/11/2008, 06:25
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Comparar fechas

nuevamente gracias por responder.
fde:
tipo de dato:fecha/hora
formato y mascara de entrada: " "..no tengo nada
  #6 (permalink)  
Antiguo 04/11/2008, 06:29
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: Comparar fechas

Hola hernan_garelli,
El tema de las fechas siempre me traen de cabeza a mi. ¿Porque no intentas transformar la columna fecha en varchar y extraes el mes? si consigues eso, puedes pasar solo el mes de tu fecha que compruebas y a lo mejor asi te funciona. Mas o menos sería algo así:

Set rsad = DB.OpenRecordset("select * from MOVIM where SUBSTRING(CONVERT(varchar, fde), 4, 2) < #" & Date.getMonth() & "# order by COD")


el 4 es la posición y el 2 el número de caracteres a extraer (suponiendo que el formato de fecha sea dd/mm/aaaa). Lo he probado conviertiendo números en varchar y extrayendo un dígito y me ha funcionado. Ya nos contarás...

Salu2
  #7 (permalink)  
Antiguo 04/11/2008, 06:51
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Comparar fechas

gracias por tu respuesta,
jamas imagine esa sentencia!! je! pero...
no entiendo cual seria el resultado q conseguiria extrayendo...
les explico bien el objetivo:
es un sistema de biblioteca (fde=fecha de devolucion) quisiera q me seleccione de mi tabla MOVIM todos las "fde", teniendo en cuenta la fecha actual, de manera tal conocer que libros se encuentran demorados.. no se si me explico..
me intereso tu sentencia pero no se q resultado podria lograr extrayendo el mes..
gracias amigos!!!
pd: yo haria una busqueda previa por mes???, no hay forma de realizarla teniendo en cuenta varioos meses?

Última edición por hernan_garelli; 04/11/2008 a las 06:54 Razón: razon de relectura y comprension de respuesta anterior
  #8 (permalink)  
Antiguo 04/11/2008, 07:02
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Comparar fechas

Cita:
Iniciado por hernan_garelli Ver Mensaje
nuevamente gracias por responder.
fde:
tipo de dato:fecha/hora
formato y mascara de entrada: " "..no tengo nada
Bueno, pues probemos así:

Set rsad = DB.OpenRecordset("select * from MOVIM where fde < #" & Format(Date, "mm/dd/yyyy") & "# order by COD")


  #9 (permalink)  
Antiguo 04/11/2008, 07:14
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Comparar fechas

avellaneda:
anda!!!!!!!!!!!!! profundamente agradecido... mil gracias genio!
les agradesco tamb a ceSharp, por darme una mano!
pd: ahora me explicas porq funciona asi??? ja
soy feliz...
  #10 (permalink)  
Antiguo 04/11/2008, 07:19
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Comparar fechas

Es que hacía falta una conversión de formatos, ya que tu Date probablemente estaba en formato dd/mm/yyyy mientras que para comparar con el campo como lo tienes en la base de datos debería ser en el formato mm/dd/yyyy.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 04/11/2008, 07:21
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: Comparar fechas

Me alegro por ti hernan!
Mi intención era que buscaras solo el mes, es decir, buscame todo lo que sea inferior a 11 (noviembre), pero devuelveme la fecha completa (SELECT *)

esto:
select * from MOVIM where SUBSTRING(CONVERT(varchar, fde), 4, 2) < #" & Date.getMonth() & "# order by COD
seria traducido al 'castellano' :
seleccioname TODO de MOVIM allá donde 11(aquí hemos extraido solo el mes) es menor que 11 (tambien hemos extraido el mes de Date) ordenado por código.
La verdad es que ha veces me complico un poco, pero me suele dar resultado...
Salu2
  #12 (permalink)  
Antiguo 04/11/2008, 07:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Comparar fechas

Hola, ceSharp. El problema que tenía tu solución era si, por ejemplo, fuese diciembre del año pasado, tampoco arrojaría el resultado .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 04/11/2008, 07:25
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Comparar fechas

Cita:
Iniciado por ceSharp Ver Mensaje
Me alegro por ti hernan!
Mi intención era que buscaras solo el mes, es decir, buscame todo lo que sea inferior a 11 (noviembre), pero devuelveme la fecha completa (SELECT *)

esto:
select * from MOVIM where SUBSTRING(CONVERT(varchar, fde), 4, 2) < #" & Date.getMonth() & "# order by COD
seria traducido al 'castellano' :
seleccioname TODO de MOVIM allá donde 11(aquí hemos extraido solo el mes) es menor que 11 (tambien hemos extraido el mes de Date) ordenado por código.
La verdad es que ha veces me complico un poco, pero me suele dar resultado...
Salu2
ahhhh!!!!! q buen razonamiento...
gracias...
te recomiendo q pruebes la sentencia como la penso avellaneda, te selecciona e la tabla todos los cumplan esa condicion, sin distincion de meses.....
mil gracias
  #14 (permalink)  
Antiguo 04/11/2008, 07:28
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Comparar fechas

Cita:
Iniciado por David el Grande Ver Mensaje
Es que hacía falta una conversión de formatos, ya que tu Date probablemente estaba en formato dd/mm/yyyy mientras que para comparar con el campo como lo tienes en la base de datos debería ser en el formato mm/dd/yyyy.
david pero cuando yo creo mi tabla se configura de forma automatica ese formato (mm/dd/yyyy) en un tipo de campo fecha/hora????
el sistema siempre arroja el formato dd/mm/yyyy???
no se si entienden mis preguntas...
  #15 (permalink)  
Antiguo 04/11/2008, 07:37
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Comparar fechas

Cita:
Iniciado por hernan_garelli Ver Mensaje
avellaneda:
anda!!!!!!!!!!!!! profundamente agradecido... mil gracias genio!
les agradesco tamb a ceSharp, por darme una mano!
pd: ahora me explicas porq funciona asi??? ja
soy feliz...
Bueno, eso no está comentado por Microsoft (al menos yo nunca lo ví).

Creo que es porque, aunque la función Date devuelva la fecha corta del sistema, en una consulta sql la toma en su formato nativo (formato americano).

  #16 (permalink)  
Antiguo 04/11/2008, 08:07
 
Fecha de Ingreso: noviembre-2008
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Comparar fechas

Cita:
Iniciado por Avellaneda Ver Mensaje
Bueno, eso no está comentado por Microsoft (al menos yo nunca lo ví).

Creo que es porque, aunque la función Date devuelva la fecha corta del sistema, en una consulta sql la toma en su formato nativo (formato americano).

ah... ahora entiendo
gracias amigo sos un genio
cualquier cosa q necesiten estoy a sus disposiciones, si bien mi fuerte no es la programacion quizas en otras cosas les pueda dar una mano, gracias
  #17 (permalink)  
Antiguo 04/11/2008, 08:26
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: Comparar fechas

Po zi! tenéis razón, tendría que también extraer el año. En fin, sería un 'cristo' :) mejor la solución de Avellaneda.

Salu2
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 18:03.