TRINACRIA FELIX ha scritto:
Per gli avvisi mi basta solo che funzionino soltanto al compimento dei 32 e 39 anni solo per una parte dei nominativi che ho selezionato creandomi una Query apposita.
Quindi dobbiamo risolvere soltanto questo enigma?
Perdona l'ignoranza nel settore. Io immagino che una Persona quando compie 32 anni, gli viene messa "1 stelletta", quando compie 39 gli vengono messe "2 stellette". Io parlo di stellette, ma intendo dire che occorre mettere un segno di spunta su un particolare campo Sì/No. Quando queste stellette vengono attribuite, tu devi metterci un segnale da qualche parte del tipo "Tizio OK per 32", mentre Caio che ha 39 anni deve avere OK 1 stelletta e OK 2 stellette.
Domanda: Premesso che tu hai già creato la query che filtra le opportune Persone, può capitare che una Persona al compimento di 32 anni non riceva OK32, mentre lo riceve a 39?
A prescindere dalla mia ultima domanda, credo di aver individuato alcune espressioni chiave che dovrebbero risolvere i tuoi calcoli. Parto dal presupposto che andrebbero aggiunti in maschera (e anche in tabella) due campi Sì/No "OK32" e "OK39". Poi considera le seguenti sintassi:
Date() significa la Data Odierna
[DataNascita] significa ovviamente la Data di Nascita
DateAdd("yyyy";+32;[DataNascita])
calcola la data 32 anni in avanti rispetto alla DataNascita
analogamente
DateAdd("yyyy";+39;[DataNascita])
calcola la data 39 anni in avanti rispetto alla DataNascita
l'espressione:
[Maschere]![NomeMaschera]![OK32]=Falso
significa che tu non hai messo il segno di spunta sul campo OK32 perchè la Persona non ha ancora compito i 32 anni oppure perchè tu lo hai dimenticato di fare.
Non so se sai usare le condizioni nelle macro oppure utilizzi direttamente il Visual Basic. Io me la cavo nel primo caso e immagino che occorre applicare una condizione con la seguente sintassi:
Date()>=DateAdd("yyyy";+32;[DataNascita]) And [Maschere]![NomeMaschera]![OK32]=Falso
Forse ho confuso le idee, ma spero di averti dato alcune imbeccate utili per proseguire "logicamente".