Scusatemi se questo è un post ripetitivo, non lo avrei fato se
veramente non ne avessi bisogno.
Grazie Claudio
Senza aver visto nè il formato nè un esempio è dura...
Vedi se con DateAdd("h"......) ti risolve il problema.
@Alex
Ciao grazie per avermi risposto, la forma nella query è questa:
Nominativo Roc Durata Attivita'
pippo 1.05
pippo 2.30
minni 0.50
Il risultato dovrebbe essere - e invece viene fuori
pippo minni
pippo minni
3.35 0.50
0,1493055555555560, 3,47222222222222E-02
Inutile dirvi che ci sto diventando pazzo, aiutatemi!!!!!!!
Claudio
Il problema, se problema può essere, è dovuto alla tipologia del
CAMPO...
Dovresti usare eventualmente la funzione di arrotondamento alla 2°
cifra...
Nel sito di Karl trovi la funzione fctRound(.....)
@Alex
Tabella DurataAttivita
Campo1: Nominativo
Campo2: Durata
i dati inseriti sono quelli del tuo esempio
Crei una query con questo costrutto:
SELECT DurataAttivita.Nominativo, Format(CDate(Sum([Durata])),"Short Time") AS DurataTotale
FROM DurataAttivita
GROUP BY DurataAttivita.Nominativo;
Il format non è indispensabile, l'ho inserito per farti vedere solo ore e minuti
David
Funziona Grazie David, c'è solo un Problema che nella tabella di
origine ho IdNominativo- numerico che è legato alla tabella Nominativo
e quindi mi riporta il il numero ma no il nome, come posso ovviare a
questo
Ancora grazie
Claudio
Risolto,
Grazie, Grazie Grazie a tutti.
Claudio
<bobo...@gmail.com> ha scritto nel messaggio
news:7c17b109-c9a8-4dd5...@r66g2000hsg.googlegroups.com...
> Scusate ma ho veramente bisogno di risolvere questo problema,
> ho una tabella così strutturata:
> un campo "nome" e un campo " durata attività" dove vado a inserire i
> nomi e il tempo in forma data breve..
> Ho fatto una query, per effettuare la somma delle ore che però mi
> restituisce un formato diverso. Mi sono letto nel gruppo tanti esempi,
> ma non riesco ad adattarli al mio.
Ciao Claudio,
prevedi di avere sommatorie di "Durata attività" che superano le 24 ore e
vuoi il risultato formattato come 38.12.20
?
Ciao
--
Giorgio Rancati
[Office Access MVP]
Magari!!!, potrebbe darsi che la somma superi le 24 ore,
mi puoi dire gentilmente la stringa.
Grazie
Ciao
<bobo...@gmail.com> ha scritto nel messaggio
news:e8c26a88-eaa1-4185...@8g2000hse.googlegroups.com...
> On 30 Apr, 14:41, boboc...@gmail.com wrote:
>> On 30 Apr, 12:12, "giorgio rancati"
>>
> Questa è la stringa che al momento sto adottando:
> SELECT DurataAttivita.IdRoc, Format(CDate(Sum([Durata])),"Short Time")
> AS DurataTotale
> FROM DurataAttivita
> GROUP BY DurataAttivita.IdRoc;
> In che modo andrebbe adattata?
In un modulo Bas crea questa funzione:
----
Public Function fn_OraEstesa(ByVal Secondi As Long) As String
Dim Ore As Long
Ore = Fix(Secondi / 3600)
Secondi = Secondi - Ore * 3600
fn_OraEstesa = Str(Ore) + "." + Format(DateAdd("s", Secondi, 0),
"nn.ss")
End Function
----
Questo è l'SQL della query
----
SELECT DurataAttivita.IdRoc,
fn_OraEstesa(Sum(DateDiff("s",0,[Durata]))) AS DurataTotale
FROM DurataAttivita
GROUP BY DurataAttivita.IdRoc;
----
eseguo la sommatoria dei secondi per evitare i problemi del dato a virgola
mobile generato dalla Sum([Durata])
>Grazie Giorgio R. ma come avrai capito sono molto ignorante in materia, cosè un modulo Bas e dove va inserito
e l'SQL per la query va inserita in un secondo tempo?
Sei stato molto gentile a costruirmi la stringa
Saluti Claudio
no problem :-)
Da Access premi ALT-F11 per aprire l'editor Visual Basic, poi premi il menu
Inserisci-->Modulo, poi incolla la funzione nella finestra bianca sotto le
eventuali scritte "Option Compare Database" e "Option Explicit"
la penultima riga della funzione è andata a capo ma deve essere tutta su una
sola riga.
----
fn_OraEstesa = Str(Ore) + "." + Format(DateAdd("s", Secondi, 0), "nn.ss")
----
> e l'SQL per la query va inserita in un secondo tempo?
puoi modificare l'SQL anche prima e salvare la query, basta che la esegui
solo dopo aver creato la funzione altrimenti genera errore.
Ho inserito la funzione in moduli,
Public Function fn_OraEstesa(ByVal Secondi As Long) As String
Dim Ore As Long
Ore = Fix(Secondi / 3600)
Secondi = Secondi - Ore * 3600
fn_OraEstesa = Str(Ore) + "." + Format(DateAdd("s", Secondi, 0),
"nn.ss")
End Function
Quando lancio la query mi da errore di sintassi ......
Tutto O.K dipendeva dal fatto che l'ultima riga era andata a capo.
Non so come ingraziarti
Saluti di cuore Claudio