Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Urgente- somma ore in query

422 views
Skip to first unread message

bobo...@gmail.com

unread,
Apr 29, 2008, 5:27:25 PM4/29/08
to
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.

Scusatemi se questo è un post ripetitivo, non lo avrei fato se
veramente non ne avessi bisogno.

Grazie Claudio

Alessandro Baraldi

unread,
Apr 30, 2008, 2:11:04 AM4/30/08
to

Senza aver visto nè il formato nè un esempio è dura...

Vedi se con DateAdd("h"......) ti risolve il problema.

@Alex

bobo...@gmail.com

unread,
Apr 30, 2008, 2:46:45 AM4/30/08
to

>
> 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

Alessandro Baraldi

unread,
Apr 30, 2008, 3:13:41 AM4/30/08
to

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

David

unread,
Apr 30, 2008, 4:11:42 AM4/30/08
to

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

bobo...@gmail.com

unread,
Apr 30, 2008, 5:31:53 AM4/30/08
to
On 30 Apr, 10:11, David <dNaOvSiPdAb...@hotmail.com> wrote:
> David- Nascondi testo tra virgolette -
>
> - Mostra testo tra virgolette -

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

bobo...@gmail.com

unread,
Apr 30, 2008, 5:40:52 AM4/30/08
to
> Claudio- Nascondi testo tra virgolette -

>
> - Mostra testo tra virgolette -

Risolto,
Grazie, Grazie Grazie a tutti.
Claudio

giorgio rancati

unread,
Apr 30, 2008, 6:12:08 AM4/30/08
to

<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]

bobo...@gmail.com

unread,
Apr 30, 2008, 8:41:19 AM4/30/08
to
On 30 Apr, 12:12, "giorgio rancati"
<giorgio_No_Spalmer_ranc...@tiscali.it> wrote:
> <boboc...@gmail.com> ha scritto nel messaggionews:7c17b109-c9a8-4dd5...@r66g2000hsg.googlegroups.com...

Magari!!!, potrebbe darsi che la somma superi le 24 ore,
mi puoi dire gentilmente la stringa.

Grazie

bobo...@gmail.com

unread,
Apr 30, 2008, 9:15:06 AM4/30/08
to
On 30 Apr, 14:41, boboc...@gmail.com wrote:
> On 30 Apr, 12:12, "giorgio rancati"
>
>
>
>
>
> <giorgio_No_Spalmer_ranc...@tiscali.it> wrote:
> > <boboc...@gmail.com> ha scritto nel messaggionews: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
> >  ?
>
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?

Ciao

giorgio rancati

unread,
Apr 30, 2008, 10:59:29 AM4/30/08
to

<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])

bobo...@gmail.com

unread,
Apr 30, 2008, 3:07:28 PM4/30/08
to
On 30 Apr, 16:59, "giorgio rancati"
<giorgio_No_Spalmer_ranc...@tiscali.it> wrote:
> <boboc...@gmail.com> ha scritto nel messaggionews:e8c26a88-eaa1-4185...@8g2000hse.googlegroups.com...
>
un modulo Bas,

>
> In un modulo Bas crea questa funzione:
> ----

>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

giorgio rancati

unread,
Apr 30, 2008, 3:25:17 PM4/30/08
to
<bobo...@gmail.com> ha scritto nel messaggio
news:983c519a-740c-4b63...@b1g2000hsg.googlegroups.com...

>Grazie Giorgio R. ma come avrai capito sono molto ignorante in materia,
>cosè un modulo Bas e dove va inserito

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.

bobo...@gmail.com

unread,
Apr 30, 2008, 3:37:44 PM4/30/08
to
On 30 Apr, 21:07, boboc...@gmail.com wrote:
> On 30 Apr, 16:59, "giorgio rancati"
>
> <giorgio_No_Spalmer_ranc...@tiscali.it> wrote:
> > <boboc...@gmail.com> ha scritto nel messaggionews:e8c26a88-eaa1-4185...@8g2000hse.googlegroups.com...
>


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 ......

bobo...@gmail.com

unread,
Apr 30, 2008, 3:44:32 PM4/30/08
to

Tutto O.K dipendeva dal fatto che l'ultima riga era andata a capo.
Non so come ingraziarti
Saluti di cuore Claudio

0 new messages