Newsgroup: it.comp.appl.access
Titolo: Parametri funzione INT

Ciao a tutti,
spippolando su un db  ho trovato la seguente funzione:
=INT((Date()-[data nascita])/365,3)
utilizzata per definire l'età di una persona confrontando la sua data di
nascita, appositamente inserita nel campo [data nascita] con quella attuale.
Da quello che mi pare di capire Access effettua una sottrazione dei giorni
intercorsi e la divisione per 365 serve a dare il numero di anni. INT poi,
arrotonda all'intero.
Quello che non capisco è la presenza di quel 3 dopo la virgola.
Ho provato a toglierlo e la funzione viene eseguita comunque.
A che serve allora???

 ha scritto nel messaggio
news:Q4KHa.96712$Ny5.2...@twister2.libero.it...

sembra che il tizio che l'ha scritta voglia in qualche modo tener conto degli anni
bisestili, abche se 365,25 era più opportuno, in ogni caso non avrai mai certezza che il
risultato sia giusto... a meno il compleanno del tizio non arrivi ogni 4 anni
Non capisco propio perchè non gli sia piaciuta la classica Year(Date())-Year([Data di
nascita])
omnitow

 ha scritto nel messaggio
news:ddLHa.97022$Ny5.2...@twister2.libero.it...

Beh, se oggi fosse il 1° gennaio 2003, dire che una persona nata il 31
dicembre 2002 abbia un anno non mi sembra proprio vero.
Forse per i calcolo dell'età potrebbe essere più funzionale usare questa
funzione:
Public Function Eta(DataNascita As Date)
   Dim varEta As Variant
   varEta = DateDiff("yyyy", DataNascita, Now)
   If Date < DateSerial(Year(Now), Month(DataNascita), Day(DataNascita))
Then
       varEta = varEta - 1
   End If
   Eta = varEta
End Function
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:xjVHa.97964$Ny5.2...@twister2.libero.it...

M'hai beccato anche stavolta Roberto, hai ragione...
Ciao, omnitow

 ha scritto nel messaggio
news:xjVHa.97964$Ny5.2...@twister2.libero.it...

Di nuovo ciao
Ho creato un controllo Età in cui ho inserito la funzione che mi ha
suggerito Roberto e funziona a meraviglia.
Tuttavia ora ho un altro problema:
Vorrei evitare che, dopo aver aggiornato il controllo DATANASCITA, e quindi
fatto partire la function del controllo ETA', venisse cancellato il valore
di DATANASCITA restituendo così un errore su ETA'.
PEr spiegarmi meglio:
Scrivo la data di nascita
Si aggiorna il controllo ETA
Mi accorgo di aver sbagliato e di non conoscere la data
Cancello la data di nascita
Il controllo Età mi da errore perchè non gestisce il null della casella
DATANASCITA
Suggerimenti???? Proposte????
Grazie a tutto il NG
marco



 Suggerimenti???? Proposte????
Sě.
Perchč il tuo post non ha il Re: nel subject?
Perchč non sfoltisci un po' il tuo quoting?
Perchč posti due volte lo stesso messaggio?
Antonio


A) perchè si tratta di cosa diversa e credo si possa adattare anche ad altre
funzioni oltre che al calcolo della data ;
B) non ci ho pensato;
C) perché ho sbagliato

 ha scritto nel messaggio
news:3XQMa.141763$Ny5.4...@twister2.libero.it...

Prova così:
Public Function Eta(DataNascita As Date)
   Dim varEta As Variant
   If Nz(DataNascita, "") <> "" Then
       varEta = DateDiff("yyyy", DataNascita, Now)
       If Date < DateSerial(Year(Now), Month(DataNascita), Day(DataNascita))
Then
           varEta = varEta - 1
       End If
       Eta = varEta
    Else
        Eta = 0
    End If


 marco
Per quale motivo apri un nuovo thread con un argomanto che già era in
discussione in un altro thread ????
Ti ho già risposto nell'altro thread.


 ha scritto nel messaggio
news:UWRMa.142939$lK4.3...@twister1.libero.it...

Perchè credo che come argomento vada al di là della funzione di calcolo
data.
Il thread sulla funzione INT ho sbagliato a postarlo e me ne scuso
Ciao
Marco

 Marco
-- 


cut

Ho provato ma non funziona
Nel momento in cui esco dal controllo datanascita lasciando vuoto il
controllo Età mi visualizza #error

 ha scritto nel messaggio
news:IgTMa.142188$Ny5.4...@twister2.libero.it...

Non ho ben capito a fronte di quale evento richiami la funzione che calcola
l'età, ma richiama la funzione solo a condizione che la fata di nascita sia
significativa.
