Visual Basic - Uregente!: Manejo de fechas en vb6

Life is soft - evento anual de software empresarial
 
Vista:

Uregente!: Manejo de fechas en vb6

Publicado por Angel (19 intervenciones) el 06/07/2005 21:44:38
Tengo un sistema hecho en el cual se almacena gran cantidad de datos que solo son utiles durante 7 dias por lo cual cada vez que se ingresa al sistema se hace necesario verificar si existe información que ya no es util y borrarla, es decir registros cuya fecha de creación sea menor a la fecha del dia menos 7, he probado lo siguiente y no he podido solucionar:

Private Sub Chequeo()
Dim mfecha As Date
mfecha = Format((Date - 7), "dd/mm/yyyy")
rsLst.Open ("select * from listas where datevalue(fecha) <= #" & mfecha & "# order by fecha asc"), cn, adOpenStatic, adLockReadOnly
If rsLst.RecordCount > 0 Then
rsLst.Close
frm_limpiador.Show ' en este formulario lo que hago es hacer el mismo chequeo y borrar lo que consiga en la tabla y en otras dos relacionadas
Else
rsLst.Close
End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 14
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Uregente!: Manejo de fechas en vb6

Publicado por SuNcO (599 intervenciones) el 06/07/2005 22:18:56
Si el campo es tipo Date no es necesario "datevalue(fecha)"

Ahora bien, que te da el Select ? O que error te da ? Simplemente no hace nada ?

Otra cosa.. si el campo es Date creo se guarda alrevez ,osea yyyy/mm/dd
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Uregente!: Manejo de fechas en vb6

Publicado por Angel (19 intervenciones) el 06/07/2005 22:59:52
El problema es que me borra todos los registros inclusive los creados el mismo dia y he intentado de varias formas con lo del formato de fecha tales como DateValue, CDate y con el Format que usamos en Venezuela que es "dd/mm/yyyy" y siempre me termina borrando todo. El procedimiento que coloque en la pregunta llama a otro formulario que al abrir muestra unas barras de progreso y va borrando lo que consigue con el select que hago alli igual de sintaxis pero con tablas diferentes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Prueba esto

Publicado por Samuel (22 intervenciones) el 06/07/2005 23:44:06
Cn.Execute "delete from listas where datediff(day,fecha,getdate())<=7"

eso funciona en SQL Server
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prueba esto

Publicado por Angel (19 intervenciones) el 07/07/2005 00:12:18
Es decir debo hacer la seleccion asi:
"select * from listas where datediff(day,fecha,getdate())<=7"
Por que estoy trabajando con access2000.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prueba esto

Publicado por Christian (675 intervenciones) el 07/07/2005 00:32:55
claro esta consulta te ayudaria:

"select * from listas where datediff(day,fecha,getdate())<=7"

en las funciones de fechas no esta demas decirte que le eches un vistazo tb a dateadd. Quiza la necesites tb en otra oportuniadad.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prueba esto

Publicado por Angel (19 intervenciones) el 07/07/2005 23:16:42
Esto lo probe y me da el siguiente error:

La funcion 'getdate' no esta definida en la expresión.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prueba esto

Publicado por blacky_dy (32 intervenciones) el 07/07/2005 23:50:59
en access la funcion es date, GetDate es sql server
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imposible Resolver con el DateDiff

Publicado por Angel (19 intervenciones) el 08/07/2005 01:49:16
Estuve consultando a cerca del uso de la funcion DateDiff y aunque en la ayuda dice que Access la soporta he probado de varias formas y no me resulta sera que existe alguna otra forma o yo lo he empleado mal esta es la sintaxis que trate de usar:

rsLst.Open ("select * from listas where datediff(day, fecha, getdate()) <= 8 order by fecha"), cn, adOpenStatic, adLockReadOnly

Y da error con el getdate() , probe tambien con:

rsLst.Open ("select * from listas where datediff(day, fecha, date) <= 8 order by fecha"), cn, adOpenStatic, adLockReadOnly

Y me dice que no se han especificado valores para algunos de los parametros requeridos.

Perdon por la insistencia pero si hay alguien que me ayude se lo agradezco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imposible Resolver con el DateDiff

Publicado por Pedro Luis (878 intervenciones) el 08/07/2005 09:39:27
No te metas en mas lios la fecha con la que tienes que comparar es Date-7, lo que creo que te ocurre es que el formato que tienes que darle es el USA, o sea Mes, Dia, Año.

Te adjunto un ejemplo que me funciona y que no lo hizo hasta que cambie el formato (m-d-yyyy)

Sql = "Select * from actas where fecha>=#" & Format(Aux!Fechamenor, "m-d-yyyy") & "# and fecha<=#" & Format(Aux!FechaMayor, "m-d-yyyy") & "# order by acta"

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Esta solución funciona excelente

Publicado por Angel (19 intervenciones) el 08/07/2005 19:42:50
Agradecimientos a todos los que me ofrecieron su ayuda, pienso que a veces no se da una pronta solución por falta de información en el planteamiento del problema es decir por no especificar que base de datos se usa, que versión de visual basic o que tipo de programaión se emplea, bueno de todas formas estoy muy agradecido y grandemente con Pedro Luis quien en definitva tenia la solución he probado y todo marcha bien. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar