Access clasificar fechas

Hola! Tengo una consulta para hacerte,
En una consulta tengo un campo calculado, el mismo me dice cuántos días faltan para cumplir un objetivo (con la fecha del objetivo previamente ingresada). La función es: "días para objetivo = fecha objetivo - now".
Mi problema radica en que luego de obtener la cantidad de días restantes, quiero clasificarlos en períodos de 50 días. Es decir, si la función me dice que restan 35 días, entonces entra en el período 0-50; si faltan 165 días, en el período 150-200, si faltan 320, en el periodo 300-350 y así sucesivamente. La verdad no se me ocurren ideas para lograrlo.
Ojala me puedas dar una mano, muchas gracias
Saludos

1 Respuesta

Respuesta
1
No lo puedes hacer en una consulta, tendrá que utilizar algo de código, se me ocurre hacerlo en un formulario.
Supongamos que tenemos la tabla Objetivos con los campos código, FechaObjetivo, Intervalo.
Te creas un formulario en forma Tabla (Formulario continuo) basado en la tabla Objetivos con los cuadros de texto Código, FechaObjetivo e Intervalo. Como los intervalos pueden variar cada vez que abras el formulario lo que haremos será actualizar este campo cada vez que abras el formulario. Para ello en las propiedades del formulario, en la acción Al cargar ---> Procedimiento de Evento ---> Picas en el cuadrado de la derecha el de los ... y pones el código siguiente:
' Declaramos las variables
Dim db As Database
Dim rs As Recordset
Dim vIntervalo1 As Integer
Dim vIntervalo2 As Integer
Dim vDias As Integer
Dim vComprobacion As String
' Activamos la Base de datos
Set db = CurrentDb
' Abrimos el recordset
Set rs = db.OpenRecordset("Select Codigo, FechaObjetivo, Intervalo from Objetivos")
' Lo que vamos a hacer es ver en que intervalo está el nº de días, empezamos con 0 - 50 y vamos aumentando hasta que lo encontremos
' Una vez encontrado lo actualizamos en la tabla Objetivos y salimos del bucle (vComprobacion = "No Sigue")
Do While Not rs.EOF
vIntervalo1 = 0
vIntervalo2 = 50
vDias = rs!FechaObjetivo - Date
vComprobacion = "Sigue"
Do While vComprobacion = "Sigue"
If vDias >= vIntervalo1 And vDias <= vIntervalo2 Then
rs.Edit
rs!Intervalo = Str(vIntervalo1) + " - " + Str(vIntervalo2)
rs.Update
vComprobacion = "No Sigue"
End If
vIntervalo1 = vIntervalo2 + 1
vIntervalo2 = vIntervalo2 + 50
Loop
rs.MoveNext
Loop
Si quieres visualizar en el formulario el nº de días creas un cuadro de texto y en origen del registro pones:
=Form!FechaObjetivo.Valor-Date()
Me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas