Somma di campi ora con totale di ore e minuti dei record in una sottomaschera

guido boccalario 100 Punti di reputazione
2026-01-26T20:01:32.6466667+00:00

Buongiorno. Sto utilizzando un DB creato con Access 365 per registrare le presenze di partecipazione a interventi utilizzando una maschera con sottomaschera. Utilizzo 2 tabelle, tblNominativi dove attingo nomi, cognomi ecc e la tabella tblIntNominativi che contiene gli interventi e le specifiche. Le due sono messe in relazione molti a molti ossia ogni intervento può avere più nominativi, date e orari e viceversa.

Creando un nuovo intervento nella maschera principale, posso inserire nella sottomaschera collegata, i nominativi dei partecipanti e per ciascuno di loro, data e ora inizio e data e ora fine e un campo che calcola il totale delle ore effettuate per ognuno "Ore_Di_Intervento" anche oltre le 24 ore e funziona. Sono tutti campi formato Ora breve 24h.

Il problema è che non riesco a inserire in sottomaschera un campo calcolato che mi faccia il totale generale delle "Ore_Di_Intervento" dei record presenti al momento, appunto in sottomaschera, come da screen shot allegato.

Ho provato con un campo calcolato (con formato numero generico) a trasformare in secondi le ore, minuti e secondi del valore presente nel campo per ogni nominativo "Ore_Di_Intervento" =((Hour([Tot_int])*3600)+(Minute([Tot_int])*60)+Second([Tot_int])) (sempre in sottomaschera), pensando di fare il calcolo totale generale ritrasformandolo in ore ma non va o meglio, funziona il totale numerico dei secondi per ogni nominativo presente in sottomaschera ma non riesco impostare il totale generale secondi e di conseguenza neppure il totale generale ore che dovrebbe scaturire dalla conversione dei secondi stessi.

La visone dovrebbe essere: maschera con i dati intervento, sottomaschera con nominativi date e ore e il totale generale delle ore.

Ho cercato online e testato varie soluzioni ma senza risultati efficaci, provando svariate formule ma ottengo sempre nel campo "Totale_Ore_Intervento" #errore o #nome.

Il campo totale ore, dovrebbe comparire in sottomaschera.

Grazie per un aiuto perché sto scervellandomi senza risultati.

Microsoft 365 e Office | Microsoft To-Do | Per il lavoro
0 commenti Nessun commento

Risposta accettata dall'autore della domanda
Anonimo
2026-01-27T09:17:30.0266667+00:00

Nota: Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbe contenere errori grammaticali o espressioni poco naturali.

Ciao guido boccalario

Grazie per aver contattato il Forum Microsoft Q&A e per aver condiviso la tua esperienza.

Il problema che riscontri con #Errore o #Nome nel piè di pagina della sottomaschera si verifica solitamente per i seguenti motivi:

  • In Access, non è possibile utilizzare =Sum([NomeCasellaDiTesto]) se quella casella di testo contiene un calcolo. È necessario eseguire il calcolo all'interno della funzione Sum utilizzando i nomi dei campi originali della tabella.
  • I campi Data/Ora standard in Access "ripartono" da zero ogni 24 ore. Se il totale è di 26 ore, Access lo visualizzerà come 02:00 (le 2 del mattino), a meno che non lo si formatti manualmente come stringa di testo.

Non cercare di sommare il campo calcolato dei secondi visibile a schermo.

Se vuoi visualizzare un risultato come "26:15", non puoi usare il formato "Ora breve". Devi usare un'espressione di testo. Inserisci una casella di testo nel Piè di pagina della sottomaschera e modifica la formula in questo modo:

  • =Int(Sum(DateDiff("n";[OraInizio];[OraFine]))/60) & ":" & Format(Sum(DateDiff("n";[OraInizio];[OraFine])) Mod 60; "00")

(Assicurati di sostituire [OraInizio] e [OraFine] con i nomi reali dei tuoi campi)

Questa formula calcola la durata totale in minuti, esegue la somma e converte il risultato in una stringa di testo che mostra "Ore:Minuti".

Per favore fammi sapere come va, poiché il tuo feedback è prezioso per la community.


Se la risposta è utile, fai clic su “Accetta risposta” e gentilmente votala positivamente. Se hai ulteriori domande su questa risposta, fai clic su “Commenta”.

Nota: Segui i passaggi nella nostra documentazione per abilitare le notifiche e-mail se desideri ricevere la notifica relativa a questa discussione.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.

5 risposte aggiuntive

Ordina per: Più utili
  1. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

  2. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

  3. guido boccalario 100 Punti di reputazione
    2026-01-27T21:18:00.02+00:00

    Risolto ragionando un po' e cercando bene online.

    Calcolo ore totali di intervento in sottomaschera con:

    aggiunta di un Campo "Secondi" calcolato nella query collegata alla sottomaschera [sfrmRia_Dettaglio].

    Quindi trasformo in secondi le ore risultanti di intervento per ciascun nominativo (formato numerico standard):

    Secondi: (Hour([tblRie_Nominativi]![Ore_Di_Intervento])*3600)+(Minute([tblRie_Nominativi]![Ore_Di_Intervento])*60)+Second([tblRie_Nominativi]![Ore_Di_Intervento])

    in sottomaschera

    casella di testo [Tot_Sec]: eseguo il totale dei secondi: =Somma([Secondi]) - (formato numerico standard)

    casella di testo [Tot_Ore_Int]: riconverto i secondi in ore totale ore: =([TotaleOreTOTALE]\3600 & ":" & Format(([TotaleOreTOTALE] Mod 3600)\60;"00") & ":" & Format([TotaleOreTOTALE] Mod 60;"00")) - (formato Ora breve 24h)

    in maschera principale dove visualizzo il totale ore:

    (utilizzo la sintassi: =[NomeControlloSottomaschera].[Form]![NomeCampo])

    e quindi....

    =[sfrmRia_Dettaglio].[Form]![Tot_Ore_Int] - (formato Ora breve 24h)

    e ogni volta mi calcola il totale ore

    La risposta è stata utile?

    0 commenti Nessun commento

  4. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

Risposta

Le risposte possono essere contrassegnate come "Accettata" dall'autore della domanda e "Consigliata" dai moderatori, in modo da consentire agli utenti di sapere che la risposta ha risolto il problema dell'autore.