Somma di numeri del tipo Ore,Minuti

di il
36 risposte

36 Risposte - Pagina 2

  • Re: Somma di numeri del tipo Ore,Minuti

    31/05/2023 - By65Franco ha scritto:


    NAAAAAAAATTTTTTTTTTTTTTT ! ! ! ! ! 

    ma che è tutto questo fumo ?   stai surriscaldando i circuiti con le mille valvole ???!!!???  ;))

    Hai fatto il calcolo ?

    Ma poi dove lo devi esporre il risultato finale? Quali dettagli e quali riepiloghi ti occorrono come risultato finale da esporre?


    Intanto famme aprì sta finestra… ce stà un sacco de fumo , che combini ?!?  ;))

    (scherzo!)

    eh, non lo so fare…. 

    Il risultato lo devo poi riportare in un repor dove c'è un raggruppamento per dipendenti. Per applicare quello che tu mi hai detto dovrei creare un'altra colonna in calcolo il totale dei minuti. Allora poi nel report applicare quelle formule che tu mi hai detto. Però ora non lo so come si fa.. sono scoraggiato, Qual è la formuta che sta dietro a nTotMinuti nella foto che hai postato?

  • Re: Somma di numeri del tipo Ore,Minuti

    31/05/2023 - Nat ha scritto:


    Il problema non è la matematica, è scrivere la matematica con Access!

    Aspettando di sapere dove e come vuoi visualizzare i risultati, direi che ti basta inserire nella query solo il calcolo totale minuti.

    In questo modo sia in fase di dettaglio che di riepilogo hai sempre la possibilità di risalire ed esporre il dato nella forma Ore e Minuti.

    Quando hai i minuti totali, che rappresenta il più piccolo dettaglio, in pratica hai tutto e non ti serve altro.

    Ti riprendo l'esposizione di Willy… e ti porti dietro solo TotaliMinuti.

    SELECT tblOrario.ID, tblOrario.Ingresso, tblOrario.Uscita, 
    DateDiff("n", [Ingresso], [Uscita]) AS IntervalloInMinuti 
    FROM tblOrario;
  • Re: Somma di numeri del tipo Ore,Minuti

    31/05/2023 - By65Franco ha scritto:


    31/05/2023 - Nat ha scritto:


    Il problema non è la matematica, è scrivere la matematica con Access!

    Aspettando di sapere dove e come vuoi visualizzare i risultati, direi che ti basta inserire nella query solo il calcolo totale minuti.

    In questo modo sia in fase di dettaglio che di riepilogo hai sempre la possibilità di risalire ed esporre il dato nella forma Ore e Minuti.

    Quando hai i minuti totali, che rappresenta il più piccolo dettaglio, in pratica hai tutto e non ti serve altro.

    Ti riprendo l'esposizione di Willy… e ti porti dietro solo TotaliMinuti.

    SELECT tblOrario.ID, tblOrario.Ingresso, tblOrario.Uscita, 
    DateDiff("n", [Ingresso], [Uscita]) AS IntervalloInMinuti 
    FROM tblOrario;

    Alla fine per ogni dipendente devo fare il conto delle ore, semplicemente, in un report. Alla fine mi devi dare un risultato di nuovo del tipo Ore, minuti. Non voglio cose del tipo  7,70. 

    Ora provo il metodo di Willy e vediamo.

  • Re: Somma di numeri del tipo Ore,Minuti

    31/05/2023 - Nat ha scritto:


    Il risultato lo devo poi riportare in un repor dove c'è un raggruppamento per dipendenti. Per applicare quello che tu mi hai detto dovrei creare un'altra colonna in calcolo il totale dei minuti. Allora poi nel report applicare quelle formule che tu mi hai detto. Però ora non lo so come si fa.. sono scoraggiato, Qual è la formuta che sta dietro a nTotMinuti nella foto che hai postato?

    Allora , come ti dicevo sopra, portati dietro a livello di record solo il totale minuti che ti servirà per calcolare il totale generale in fase di riepilogo

    Nel report per esporre Ore/Minuti del giorno, lo puoi fare anche nel report in fase di dettaglio, oppure lo fai nella query e lo stampi e basta.

    La cosa importante e avere su ogni record il totale dei minuti di quel giorno, poi in fase di riepilogo report, dove li sommerai come totalone minuti, lo trasformi ricavando Ore e Minuti.

    Il totale minuti del giorno (nel dettaglio del report) e il Totale Generale dei Minuti (in fase di riepilogo del report) essendo solo campi che servono per fare i calcoli, li metti nel report e li nascondi rendendoli non Visible e in una casella di testo esegui il calcolo per trasformare i totali minuti in Ore/Minuti da visualizzare.

    Fatto…  non hai altro che stampare adesso.

  • Re: Somma di numeri del tipo Ore,Minuti

    31/05/2023 - By65Franco ha scritto:


    31/05/2023 - Nat ha scritto:


    Il risultato lo devo poi riportare in un repor dove c'è un raggruppamento per dipendenti. Per applicare quello che tu mi hai detto dovrei creare un'altra colonna in calcolo il totale dei minuti. Allora poi nel report applicare quelle formule che tu mi hai detto. Però ora non lo so come si fa.. sono scoraggiato, Qual è la formuta che sta dietro a nTotMinuti nella foto che hai postato?

    Allora , come ti dicevo sopra, portati dietro a livello di record solo il totale minuti che ti servirà per calcolare il totale generale in fase di riepilogo

    Nel report per esporre Ore/Minuti del giorno, lo puoi fare anche nel report in fase di dettaglio, oppure lo fai nella query e lo stampi e basta.

    La cosa importante e avere su ogni record il totale dei minuti di quel giorno, poi in fase di riepilogo report, dove li sommerai come totalone minuti, lo trasformi ricavando Ore e Minuti.

    Il totale minuti del giorno (nel dettaglio del report) e il Totale Generale dei Minuti (in fase di riepilogo del report) essendo solo campi che servono per fare i calcoli, li metti nel report e li nascondi rendendoli non Visible e in una casella di testo esegui il calcolo per trasformare i totali minuti in Ore/Minuti da visualizzare.

    Fatto…  non hai altro che stampare adesso.

    Esattamente ciò che ho fatto! Grazie a tutti ragazzi! Ci vediamo al prossimo problema!

  • Re: Somma di numeri del tipo Ore,Minuti

    31/05/2023 - Nat ha scritto:


    Esattamente ciò che ho fatto! Grazie a tutti ragazzi! Ci vediamo al prossimo problema!

    Il report l'hai fatto ?

    il mio è venuto così:

    Nella Query mi sono portato dietro questi dati:

    Nella struttura del report tengo il campo “nTotMinuti”  nascosto perchè servirà per ricalcolare il totale Generale Ore:Minuti.

    In Totale Ore … la funzione che ho utilizzato è:

    =Somma([nTotMinuti])\60 & ":" & Somma([nTotMinuti])-((Somma([nTotMinuti])\60)*60)
  • Re: Somma di numeri del tipo Ore,Minuti

    Ahhah sei grande! Ecco il mio:

    Questo è un report per le ore di un dipendente per vari lavori.

  • Re: Somma di numeri del tipo Ore,Minuti

    31/05/2023 - Nat ha scritto:


    Questo è un report per le ore di un dipendente per vari lavori.

    Bravo!!! insomma… vabbè, si…  bravino dai…  ;)

    Ti tornano i calcoli ?  
    devi inserire il nome del giorno della settimana e la Domenica e i Festivi li stampi in Rosso Domenica 
    La colonna ore/minuti formattala con 2 decimali e separati da due punti 6:35 se per esempio fossero 25 minuti allora sarà: 0:25 poi dipende da come li vuoi leggere…
    La colonna Giorni che scopo ha ? ti serve ?

    Controlla bene, assimila metodi e funzioni….  e vaiiii  ;)
    piano piano ti fai le ossa… dopo vedrai che diventa tutto una passeggiata. Bravo!!!

  • Re: Somma di numeri del tipo Ore,Minuti

    31/05/2023 - By65Franco ha scritto:


    31/05/2023 - Nat ha scritto:


    Questo è un report per le ore di un dipendente per vari lavori.

    Bravo!!! insomma… vabbè, si…  bravino dai…  ;)

    Ti tornano i calcoli ?  
    devi inserire il nome del giorno della settimana e la Domenica e i Festivi li stampi in Rosso Domenica 
    La colonna ore/minuti formattala con 2 decimali e separati da due punti 6:35 se per esempio fossero 25 minuti allora sarà: 0:25 poi dipende da come li vuoi leggere…
    La colonna Giorni che scopo ha ? ti serve ?

    Controlla bene, assimila metodi e funzioni….  e vaiiii  ;)
    piano piano ti fai le ossa… dopo vedrai che diventa tutto una passeggiata. Bravo!!!

    Grazie! A questo punto te la sei cercata! Come si inserisce il nome del giorno? Laciamo stare la stampa colorata, sai cosa non mi piace? Per esempio vorrei che invece di 38,3 uscisse scritto 38,30, perché essendo io un matematico(non si direbbe eh? ahah) 38,3 sono portato a leggerlo come 38 ore e 3 minuti… 

    Giorni mi serve quando invece di lavorare ci sono ferie, malattia o permessi.

    Addendum: Ho risolto il problema di cui sopra. Mettendo tutto in numerico Standard! 

    Sai, forse è meglio se formatto come dici tu, con i due punti e senza virgola. Sono andato a formato ma non so vome procedere ora… 

  • Re: Somma di numeri del tipo Ore,Minuti

    31/05/2023 - Nat ha scritto:


    Grazie! A questo punto te la sei cercata! Come si inserisce il nome del giorno?

    Di norma si va su Supporto Microsoft e si ricercano le funzioni, etc etc… 

    ;))

    Ti posso dire quella che ho usato io, il primo metodo che mi è venuto in mente:

    Esempio per la data del 07/05/2023 che è un Lunedì:
    
    =WeekdayName(Weekday([OraData]);Vero)	==>> restituisce:  lun
    =WeekdayName(Weekday([OraData]);Falso)	==>> restituisce:  lunedì

    Per cambiare colore alle domeniche… per esempio puoi utilizzare la Formattazione Condizionale 
    Selezioni il Campo che ti interessa
    Crei una regola di Formattazione 
    E puoi continuare ad usare la Funzione WeekDay
    Esempio:

    L'espressione sarà per esempio:

    IIf(Weekday([OraData])=7;Vero;Falso)
    
    Dove IIF restituisce Vero o Falso al test se il numero giorno Weekday(tuaData)=7 
    Se è Vero allora si Imposta per esempio il Colore Rosso
  • Re: Somma di numeri del tipo Ore,Minuti

    Se invece di usare la formula cosi:;

    IIf(Weekday([OraData])=7;Vero;Falso)

    scriviamo solo questo che succede nella Formattazinoe condizionale…?

    Weekday([OraData])=7

    Io nei Report la evito la F.C., preferendo la gestione dell'evento Format del Corpo o della sezione interessata decisamente più potente e meno pesante.

    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
        Select Case Weekday([OraData])
            Case VBA.VbDayOfWeek.vbSunday:      Me!NomeControllo.ForeColor = vbRed
            Case VBA.VbDayOfWeek.vbSaturday:    Me!NomeControllo.ForeColor = vbBlue
            Case Else:                          Me!NomeControllo.ForeColor = vbBlack
        End Select
    End Sub
  • Re: Somma di numeri del tipo Ore,Minuti

    31/05/2023 - By65Franco ha scritto:


    31/05/2023 - Nat ha scritto:


    Grazie! A questo punto te la sei cercata! Come si inserisce il nome del giorno?

    Di norma si va su Supporto Microsoft e si ricercano le funzioni, etc etc… 

    ;))

    Ti posso dire quella che ho usato io, il primo metodo che mi è venuto in mente:

    Esempio per la data del 07/05/2023 che è un Lunedì:
    
    =WeekdayName(Weekday([OraData]);Vero)	==>> restituisce:  lun
    =WeekdayName(Weekday([OraData]);Falso)	==>> restituisce:  lunedì

    Per cambiare colore alle domeniche… per esempio puoi utilizzare la Formattazione Condizionale 
    Selezioni il Campo che ti interessa
    Crei una regola di Formattazione 
    E puoi continuare ad usare la Funzione WeekDay
    Esempio:

    L'espressione sarà per esempio:

    IIf(Weekday([OraData])=7;Vero;Falso)
    
    Dove IIF restituisce Vero o Falso al test se il numero giorno Weekday(tuaData)=7 
    Se è Vero allora si Imposta per esempio il Colore Rosso

    Grazie! Credo però che ci sia qualcheproblemaconilgiorno, infatti il primo maggio era lunedì. Anche a me da lo stesso problema…

    Così funziona correttamente

    =WeekdayName(Weekday([Data]);Falso;1)
  • Re: Somma di numeri del tipo Ore,Minuti

    01/06/2023 - Nat ha scritto:


    Grazie! Credo però che ci sia qualcheproblemaconilgiorno, infatti il primo maggio era lunedì. Anche a me da lo stesso problema…

    Così funziona correttamente

    =WeekdayName(Weekday([Data]);Falso;1)

    Bene !!! (si vede che non uso mai la F.C.)  ;))

    Assai migliore il sistema illustrato da @Alex

  • Re: Somma di numeri del tipo Ore,Minuti

    Prima che l'oggetto del thread ("Somma di numeri del tipo Ore,Minuti") si focalizzi su ulteriori aspetti, vorrei porre un paio di annotazioni:
    a) Dovendo gestire gli orari di ingresso ed uscita dei lavoratori, è da tenere presente la data in cui avviene ciò; di norma avviene nella medesima giornata, ma può accadere che l'orario non si riferisca allo stesso giorno (con conseguente calcolo ripartito su: diurno, notturno, feriale, festivo, ecc.); quindi è preferibile che l'orario di ingresso e quello di uscita sia memorizzato  con la data di riferimento.
    b) In merito al calcolo dell'orario (determinato l'intervallo, in minuti, con la funzione DateDiff) per la ripartizione nelle ore e minuti è consigliabile impiegare quanto suggerito da Oregon (per presentare i minuti) ovvero utilizzare l'operatore MOD che restituisce solo il resto (più velocemente che effettuare un ricalcolo delle ore e la presentazione del numero di ore e dei minuti vengono singolarmente determinati).
    In sintesi:

    SELECT tblOrario.ID, tblOrario.Ingresso, tblOrario.Uscita, 
    DateDiff("n",[Ingresso],[Uscita]) AS IntervalloInMinuti, 
    [IntervalloInMinuti]\60 AS NrOre, 
    [IntervalloInMinuti] Mod 60 AS NrMinuti
    FROM tblOrario;
  • Re: Somma di numeri del tipo Ore,Minuti

    01/06/2023 - willy55 ha scritto:


    Prima che l'oggetto del thread ("Somma di numeri del tipo Ore,Minuti") si focalizzi su ulteriori aspetti, vorrei porre un paio di annotazioni:
    a) Dovendo gestire gli orari di ingresso ed uscita dei lavoratori, è da tenere presente la data in cui avviene ciò; di norma avviene nella medesima giornata, ma può accadere che l'orario non si riferisca allo stesso giorno (con conseguente calcolo ripartito su: diurno, notturno, feriale, festivo, ecc.); quindi è preferibile che l'orario di ingresso e quello di uscita sia memorizzato  con la data di riferimento.
    b) In merito al calcolo dell'orario (determinato l'intervallo, in minuti, con la funzione DateDiff) per la ripartizione nelle ore e minuti è consigliabile impiegare quanto suggerito da Oregon (per presentare i minuti) ovvero utilizzare l'operatore MOD che restituisce solo il resto (più velocemente che effettuare un ricalcolo delle ore e la presentazione del numero di ore e dei minuti vengono singolarmente determinati).
    In sintesi:

    SELECT tblOrario.ID, tblOrario.Ingresso, tblOrario.Uscita, 
    DateDiff("n",[Ingresso],[Uscita]) AS IntervalloInMinuti, 
    [IntervalloInMinuti]\60 AS NrOre, 
    [IntervalloInMinuti] Mod 60 AS NrMinuti
    FROM tblOrario;

    Ottimo  Willy !!!
    infatti nei passaggi precedenti avevo segnalato la presenza della limitazione delle ore 00:00 che non sarebbero state considerate le ore 24:00 ma bensì l'inizio di un nuovo giorno… per esempio se un turno va dalle ore 20:00 alle 24:00 ( e le 24:00 è un orario non accettabile dall'espressioni) ci si deve fermare alle ore 23:59. Infatti se l'orario va dalle 20:00 alle 00:00 , viene ritornato il valore 20 Ore lavorate e non 4 ore lavorate.

    Pertanto la soluzione è quella che hai ben evidenziato, dove la data diventa determinante per scavallare in modo corretto anche le ore 23:59 per arrivare alle 00:00 e quindi l'inizio di un nuovo giorno. 
    Questo consente di avere un calcolo corretto nel caso in cui per esempio: orario dalle 20:00 alle 02:00 = 6 Ore lavorate …. mentre senza la data si avrebbe 18 ore lavorate (cioè dalle ore 02:00 del mattino fino alle 20:00 della sera) che evidentemente non è corretto perchè il conteggio delle ore deve partire dalle 20:00 e non dalle 02:00,

Devi accedere o registrarti per scrivere nel forum
36 risposte