Newsgroup: it.comp.appl.access
Titolo: calcolo età

Nuovo quesito :
Sto preparando delle statistiche sui dati immessi , tra questi vorrei creare
un grafico che mi mostrasse la fascia di età dei miei clienti.
Io nella tabella anagrafica ho la data di nascita per ogni cliente , quindi
:
1-ho creato una query che per ogni cliente calcoli l'età (facendo data
odierna - data di nascita )
2-Ho creato un'altra query che conta quante volte vengono ripetute l'età
       ------------------qui c'è il primo prob , la divisione mi dà un
valore enorme anche mettendo in formato n° fisso e decimali 0 , comunque
quando eseguo la 2° query questa non mi somma le persone che hanno la stessa
età , a meno che no siano nati lo stesso giorno , perché anche se io vedo
per tre persone 28 anni in realtà sono 27,848 27, 9009 e 27,666 .
3- Dovrei ora creare un graifco , ma devo prima raccogliere i risultati per
fasce , come si fa ??
Grazie
.:: The Jokers ::.

 per tre persone 28 anni in realtà sono 27,848 27, 9009 e 27,666 .
Parli di Access o Excel?
Se e' una query access usa al posto del campo [eta] la funzione Year([eta])
e raggruppa.

 per tre persone 28 anni in realtà sono 27,848 27, 9009 e 27,666 ...
Non hai scritto come calcoli l'età.
Ti consiglio una formula come:
DatDiff("aaa";[data di nascita];Date())+
(Format(Date();"mmgg")<Format([data di nascita];"mmgg"))
--
HTH
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com

 (Format(Date();"mmgg")<Format([data di nascita];"mmgg"))
Oops, vedo che hanno mangiato un "a". Debb' essere
DatDiff("aaaa";...


x Francesco : grazie year mi ha risolto parte del problema
x Karl :
Io ho una tabella contenente la data di nascita dei clienti :
uso :
Query1 : .... (year([data nascita])- year(date()))
Query2: conteggio i clienti con la stessa età .
Fin qui tutto ok .
Ora però vorrei , per esempio fare un grafico per fasce del tipo :
da 15 a 30 anni : n° clienti
da 31 a 40 anni : n° clienti
da 41 a 50 anni : n° clienti
over 50            : n° clienti
Come fare ?
Grazie ciao

 ha scritto nel messaggio
news:SPgI7.87696$sq5.4...@news.infostrada.it...

Hai provato a guardare la mia soluzione del 12/11 ore 10.42 in risposta al
thread ricerche?
Ciao
--
Andrea


E' PERFETTA , ho tenuto buona la mia vecchia query per il calcolo d'età ed
aggiungo la tua sul calcolo della fascia .
Riguardo il codice per calcolare l'età
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
non macino molto di vbasic , se non per le sub legate ai pulsanti , come è
utilizzabile questa formula ?
Grazie mille , ciao
Simo


Questa funzione va salvata in un modulo.
Se usi Access 97, dalla finestra database posizionati su Moduli e premi
Nuovo.
Copia e incolla la funzione e chiudi e salva il modulo con un qualsiasi nome
diverso da quello della funzione.
Poi e' possibile richiamarla dove vuoi, all'interno di una query oppure come
origine di un controllo di una maschera semplicemente con Eta(DataNascita)
Ad esempio se all'interno del modulo richiami la finestra di Debug (tasto
con finestrella con all'interno un punto esclamativo rosso) e scrivi:
?eta(#25/06/1977#)    ...e premi Enter ottieni
24
Se guardi la query QueryFasceEta (fasce in questo caso di 5 anni) del post
che ti ho indicato vedi:
SELECT Tabella1.IDPersona, eta([Tabella1]![datanascita])\5 AS FasciaEta
FROM Tabella1;
e ottieni due colonne con il codice persona ed il numero di fascia (0 = 0-5
anni, 1 = 5-10 anni, 2 = 10-15 anni etc..)
Prova a proseguire con una query di raggruppamento simile a quella che avevo
scritto nell'altro post.
Ciao
--
Andrea


Se è per questo anche la "e" di DateDiff è stata mangiata ;-)  
Comunque se si ha ancora voglia di mangiare lettere, si può optare per sostituire "Format([data di nascita];"mmgg")" con la funzione di Access DatePart così: DatePart("a";[data di nascita]) che restituisce il giorno dell'anno da 1 a 365)
Karl Donaubauer ti stimo, ciao e buone feste

 Karl Donaubauer ti stimo...
 
Dev'essere così se badi a correggere una mia risposta dopo 14 anni. ;-) 
Sono sicuro che nella migliaia da 1997 trovi un sacco di altri errori 
importanti per tutta l'umanità.
 
-- 
:-)
Karl
*********
Access FAQ:  
http://www.donkarl.com/it