General

6.130 Visualizzare un campo o variabile di tipo Data/ora con valore maggiore di 24 ore nel formato HHH:mm
  Roberto
Al contrario di quanto avviene con Excel, con Access non esiste un formato nativo che permetta di visualizzare un valore di tipo Data/ora nel caso che sia maggiore di 23 ore, 59 minuti e 59 secondi.
Ci sono diversi approcci al problema.
Il primo, specie se il valore risulta dalla somma di orari e poi deve essere usato con altre istruzioni aritmetiche (ad esempio essere moltiplicato per un costo unitario), è quello di esprimere il valore in ore e centesimi di ore quindi assegnargli il formato Fisso; ciò si ottiene moltiplicando il valore in Data/ora per 24. Adottando questa soluzione il valore di 40 ore e mezzo non verrà visualizzato come 40:30 , ma come 40,50 .
Se invece è assolutamente necessario visualizzare il valore Data/ora nel formato HHH:mm si può visualizzare una stringa così ottenuta:
OrarioHHHmm = Int(Orario) * 24 + Hour(Orario) & ":" & Format(Minute(Orario), "00")
dove OrarioHHHmm è una stringa in cui viene formattato il risultato maggiore di 24 ore, mentre Orario è il campo o variabile di tipo Data/ora con un valore maggiore di 24 ore che verrà visualizzato in ore e minuti nella stringa OrarioHHHmm.
C'è infine una terza ipotesi, suggerita da Sergio MAZZA, che prevede di aggiungere ai riferimenti del database quelli a Microsoft Excel e poi usare per la somma e la visualizzazione funzioni di Excel, insomma qualcosa del genere:
Function sommaOreConExcel(orario1 As String, orario2 As String)
Dim oApp As Excel.Application
Set oApp = CreateObject("Excel.Application")
sommaOreConExcel = oApp.WorksheetFunction.Sum(Orario1, Orario2)
oApp.Quit
Set oApp = Nothing
End Function
Naturalmente se si vuole solo la formattazione di un solo orario l'argomento orario2 dovra contenere il valore "00:00".


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.