Newsgroup: it.comp.appl.access
Titolo: Differenza tra date

Salve!!
Ho la necessità di stabilire la differenza tra due date.
La funzione verrebbe ad essere inserita in una maschera, sull'attivazione
del controllo "Giorni Ricovero"
la differenza sarà calcolata dalla differenza di "Data Dimissione" - "Data
Ricovero"
Il formato data dei due controlli è: data breve 24h
Il controllo "Giorni Ricovero", affinchè mi restituisca un numero senza
decimali, non sarà di certo formato data???
Teniamo presente che, se il ricovero e la dimissione, avvengono nello stesso
giorno, mi dovrà restituire come valore 1
Spero di essermi spresso abbastanza chiaramente.
Sauti e ringraziamenti a chi vorrà collaborare. CF


Mi sono sufficienti i ringraziamenti; non vorrei che per strafare mi
affristi un ricovero gratis. :o)
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:TYrs6.33289$6W.26...@news.infostrada.it...

Gli amici preferisco incontrarli lontano dal mio posto di lavoro!!!!
Grazie, vado a provare. CF

Cataldo Formaro wrote:

prova a vedere la funzione Datediff
ciao
Paolo

 Il calcolo della differenza giorni funziona perfettamente: GRAZIE
Adesso volendo calcolare l'Età sempre sulla stessa maschera nel controllo
"Età",
avendo come controlli per la determinazione "Data Nascita" e "Data Ricovero"
    Me![Età] = Int(Me![Data Ricovero]) - Int(Me![Data Nascita])
End If
Ho provato con questo, ma mi restituisece giorni, non ANNI!!!!
Saluti CF

 ha scritto nel messaggio
news:ZqGs6.39556$6W.37...@news.infostrada.it...

Devi usare la funzione DateDiff (vedi help), ovvero:
    Me![Età] = DateDiff("yyyy", Me![Data Nascita], Me![Data Ricovero])
La funzione ti restituisce la differenza tra l'anno delle due date.
In alternativa puoi usare la funzione pubblicata da Federico Luciani nella
FAQ "Calcola l'età in base alla data odierna" nella Sezione General del Sito
Comune; riadattala in modo che come data di riferimento usi la Data Ricovero
anzichè la data odierna e verifica se ti sta bene il criterio di
arrotondamento adottato.
Puoi anche usare la funzione di Silvio Berruti nella FAQ "Differenza tra due
date in anni, mesi e giorni" nella Sezione General del Sito Comune; in
questo caso l'età (gli anni) saranno sempre per difetto, e puoi arrotondarla
a tuo piacimento analizzando i mesi e i giorni.
--



Ho provato la tua funzione e mi restituisce l'errore:
ERRORE DI COMPILAZIONE
Sub Function non defdinita
Come mai???
Intanto provo a visitare il sito comune di access
Saluti Cf


Non so che dirti; per scrupolo, poco fa,  mi sono costruito un database di
esempio, ed ho inserito la riga di codice VBA che ti ho suggerito in una
routine generata a fronte dell'evento "Dopo aggiornamento" del controllo
Data Ricovero e a me funziona tutto perfettamente.
Non è per caso che l'hai invece scritta nell'origine controllo del controllo
Età?
Perché in questo caso avresti dovuto scrivere:
= DateDiff("aaaa";[Data Nascita]; [Data Ricovero])


TUO CODICE
Me![Età] = DateDiff("yyyy", Me![Data Nascita], Me![Data Ricovero])
------------------------------------------------------------
Private Sub Data_Ricovero_AfterUpdate()
Me![Età] = DateDiff("yyyy", Me![Data Nascita], Me![Data Ricovero])
End Sub
..E NON VA'!!!!
=================================================>
TUO CODICE
= DateDiff("aaaa";[Data Nascita]; [Data Ricovero])
-------------------------------
Private Sub Età_GotFocus()
= DateDiff("aaaa";[Data Nascita]; [Data Ricovero])
End Sub
...E NON VA' nemmeno così!!!
Aquesto punto ci terrei a capire dov'è la differenza e perchè da me non và??
(Utilizzo Access 2000)
Buona Domenica CF


Buona domenica a te


FINALMENTE Funziona!!!!
Effettivamente sbagliavo io.....
Grazie 1000
Sia dal portatile che da casa, Roberto è proprio esperto!!!!
Saluti CF   ..alla prossima.