Newsgroup: it.comp.appl.access
Titolo: sommare più risultati data







ciao, 
disperatamente cerco di capire come posso sommare più risultati 
derivanti da 
periodi dal al. es: 
1) campi: dal gg.mm.aaa al gg.mm.aaa deve dare il 
risultato 
aa.mm.gg
 
2) campi: dal gg.mm.aaa al gg.mm.aaa deve dare il 
risultato 
aa.mm.gg
 
3) campi: dal gg.mm.aaa al gg.mm.aaa deve dare il 
risultato 
aa.mm.gg
 


e vorrei avere la somma finale in 
aa.mm.gg
 come posso fare. 


grazie tante comunque 




Non c'è niente di precotto in tal senso in Access.
Se i limiti dei range sono tutti dati di tipo data, allora, utilizzando le 
funzioni la manipolazione delle date, devi costruirti tu una funzioncina 
che provvede a fare la somma di giorni, mesi e anni.
Ovviamente devi anche imporre alcuni vincoli, come ad esempio il fatto che 
tutti i mesi saranno composti dello stesso numero di giorni, e che tutti 
gli anni saranno composti dello stesso numero di mesi (e di giorni, per transitività).
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution

grazie gabriele per l'interessamento. cmq i giorni sono 30 e i mesi 12
ho tentato di adattare questo codice ma non riesco a venirne a capo
zod
Public Function YMDgone(argdate As Date)
   Dim Ygone As Integer, Mgone As Byte, Dgone As Byte
   If IsNull(argdate) Or argdate > Date Then Exit Function
   Ygone = DateDiff("yyyy", argdate, Date) + Int(Format(Date, "mmdd") < 
Format(argdate, "mmdd"))
   Mgone = Int((DateDiff("m", argdate, Date) + Int(Format(Date, "dd") < 
Format(argdate, "dd")))) Mod 12
   If Day(argdate) <= Day(Date) Then
      Dgone = Format(Date, "dd") - Format(argdate, "dd")
   Else
      Dgone = Day(DateSerial(Year(argdate), Month(argdate) + 1, 0)) - 
Day(argdate) + Day(Date)
   End If
   YMDgone = Ygone & " Ann" & IIf(Ygone = 1, "o ", "i ") _
   & Mgone & " Mes" & IIf(Mgone = 1, "e ", "i ") _
   & Dgone & " Giorn" & IIf(Dgone = 1, "o ", "i")
End Function
"PBsoft" <in...@REMOVEpbsoft.it> ha scritto nel messaggio 
news:875ea3552434d8...@news.tin.it...


 ho tentato di adattare questo codice ma non riesco a venirne a capo
[omissis]
Non ne vieni a capo in che senso? Non sai cosa fare? Ti viene restituito 
un errore?
La funzione da te riportata credo che, così com'è, ti sarà poco utile, visto 
che restituisce una stringa, anche se nel prototipo manca il tipo restituito.
Tuttavia, puoi recuperare le righe dove vengono calcolati gli anni, i mesi 
ed i giorni trascorsi, cioè quelle che iniziano con:
Ygone = .....
Mgone = .....
Dgone = .....
dove però dovrai fare attenzione a sostituire la funzione Date con la data 
più recente che delimita il range, ed a sostituire argdate con la data meno 
recente che delimita il range.
Supponendo di chiamare DataInizio e DataFine i limiti di ogni tuo range di 
date, il codice deve diventare qualcosa di simile:
Ygone = DateDiff("yyyy", DataInizio, DataFine) + Int(Format(DataFine, "mmdd") 
< Format(DataInizio, "mmdd"))
Mgone = Int((DateDiff("m", DataInizio, DataFine) + Int(Format(DataFine, "dd") 
< Format(DataInizio, "dd")))) Mod 12
If Day(DataInizio) <= Day(DataFine) Then
  Dgone = Format(DataFine, "dd") - Format(DataInizio, "dd")
Else
  Dgone = Day(DateSerial(Year(DataInizio), Month(DataInizio) + 1, 0)) - Day(DataInizio) 
+ Day(DataFine)
End If
Alla fine queste nelle tre variabili suddette dovresti trovare i valori che 
ti servono.
Ovviamente tutto ciò non ti basta, nel senso che poi devi farti la funzione 
che provvede a fare le somme con i dovuti riporti, in considerazione della 
premessa che hai fatto tu sul numero di giorni per mese.


 Ovviamente tutto ciň non ti basta, nel senso che poi devi farti la 
