Necesito crear unas alertas en una BBDD para préstamo de documentos, las alertas serian, P. Vencer, vencido, activo.

Necesito de la valiosa colaboración de los expertos en un tema el cual describiré a continuación:

Tengo un formulario de inicio, dicho formulario contiene tres óvalos de colores, (estilo semáforo) lo que necesito es que faltando días para el vencimiento de una fecha se me active o encienda el óvalo naranja, cuando se venza active el óvalo rojo y mientras este todo vigente el óvalo verde. O en su defecto enviando mensajes de alerta con con dicha información al iniciar la aplicación de Acces.

Ahh, se me olvidaba, la tabla contiene información sobre préstamo de documentos, es decir, un campo id, fecha préstamo, prestado a, etc.

2 respuestas

Respuesta
1

No dices que intervalo vas a usar. Por ejemplo, supongamos que quieres que que te avise en naranja que falta, 7 días para el vencimiento de un préstamo, en el evento al activar el registro( depende de como tengas construido el formulario puedes poner

If  fechapréstamo=date()+7 then

me.oivalonaranja.visible=true

end if

Suponiendo que los óvalos están ocultos, cunado falten 7 días para el vencimiento de ESE registro en particular, y estés en él, el óvalo naranja se mostrará.

Si los óvalos están en un formulario que no tiene nada que ver con la tabla, puedes poner en el evento al cargar de este formulario

if dcount("*","nombretabla","fechaprestamo=date()+7")>=1 then

me.ovalonaranja.visible=true

end if

Si, por ejemplo, quieres que se ponga en rojo cuando falten dos días o menos

if dcount("*","nombretabla","fechaprestamo between date()+2 and date())>=1 then

me.ovalorojo.visible=true

end if

En fin, si pudieras concretar un poco más.

muchas gracias de verdad, quizás no me explique muy bien por el desespero de encontrar respuesta, algo así como lo que me acabas de indicar es lo que necesito pero lo explicare mejor.

se trata de una tabla con su respectivo formulario, dicha tabla es para almacenar datos de recibo de correspondencias, estas correspondencias tiene un tiempo estimado de respuestas para el caso que ella lo requiera, si no no hay problema, entonces que quiero, cuando yo reciba una correspondencia para dar respuesta digamos de ocho días hábiles, me arroje un mensaje o en su defecto me muestre las alertas que he venido mencionando, como por ejemplo, verde(esta a tiempo), naranja (próximo a vencer) y rojo (vencido), o los mensajes de alertas para cada condición si fuese posible. 

Espero haberme explicado bien, de antemano muchas gracias por su tiempo y colaboración.

Es que puedes hacerlo de muchas formas, por eso te digo lo de concretar mucho. Por ejemplo, vamos a suponer que cuando abres la base, se abre un formulario al que llamaremos Inicio. En el evento al cargar puedes poner

Dim a As Byte, b As Byte, respuesta As Byte
a = DCount("folio", "nombretabla", "fecha between date()+1 and date()+5")
b = DCount("folio", "nombretabla", "fecha between date()+8 and date()+14")
respuesta = MsgBox("Hay " & a & " folios que vences en lospróximos 5 días y " & b & " que vencen en una semana", vbOKCancel, "¿Quiere verlos")
If respuesta = vbOK Then
DoCmd.OpenForm "nombre del formulario",,,"fecha between........
Else
DoCmd.CancelEvent
End If

Así, cuando se abra el formulario de inicio te aparece un mensaje diciéndote los folios que vencen entre esas fecha y que si quieres verlos, si le dices, si que se abra el formulario con aquellos registro que cumplan un plazo.

O también se puede hacer, si por ejemplo, el formulario con el que trabajas es continuo ponerle

Tres cuadros de texto independientes en cada registro y en formato condicional ponerle

La expresion es Fecha>date y fecha<date()+8 y en el fondo del cuadro elegir el color naranja, etc

Creo que lo mejor es que si quieres, repito, si quieres mándame un mensaje( sólo el mensaje) a [email protected] y te mando un par de ejemplos. Si lo haces, en el asunto del mensaje pon tu alias Richard Andrés, ya que si no sé quien me escribe ni los abro.

Respuesta
1

Si el vencimiento incluye días hábiles, que es lo más lógico no puedes utilizar date()+x días. Veo que no utilizas un campo para fijar los días del plazo. Enviame tú correo a [email protected] con gusto de preparo un ejemplo.

Como sé que vives en Colombia aprovecho que tengo una función para realizar cálculos con días hábiles de este país las cuales se encuentran en una base de datos complemento con extensión mda. Para el ejemplo he creado una tabla y un formulario.

TABLA

FORMULARIO

El formulario debe definirse como "Continuo".

EVENTOS DEL FORMULARIO

Faltaría más procedimientos, por ejemplo, validar que antes de registrar el plazo se valide la fecha del campo f_prestamo etc.

Se utiliza el "Formato condicional" para fijar el color de los campos de texto, estado1, estado2 y estado3.

Estado 1

Estado 2

Estado 3

Referencias

Se debe hacer referencia al archivo de complemento MisFestivos. Mda el cual será suministrado vía email para los usuarios que les interese, este contiene la función SgteDiaHabil(). Solo aplica para Colombia.

En la Web explican como se crea una archivo de complemento Access y como se hace la referencia.

Los usuarios interesados en este ejemplo incluida la función MisFestivos. Mda pueden solicitarlo a [email protected] haciendo referencia en el asunto a "Función Festivos". Al usuario que hizo la consulta le será suministrado el ejemplo al correo suministrado. Las funciones incluidas en el complemento permiten hacer un calendario con los festivos de Colomnia. También hay una versión para todos los países que hablen español.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas