Calcolo ore straordinario.-

di il
14 risposte

Calcolo ore straordinario.-

Premetto che non conosco il VBA. Ho creato un programmino, con la versione 2007, che dovrebbe permettere di ottenere le ore, minuti e secondi di straordinario lavorato. Nella tabrella chiamata attività ho previsto due campi con proprietà dataora, denominati inizio e fine, con una query con la funzione cdata([fine] - [inizio]) ho ottenuto la differenza in ore,minuti e secondi, ma se la (somma) totalizzazione ore del mese o dell'anno supera le 24 ore mi riporta una data, per me senza lacun senso e le ore, minuti e secondi da lui calcolati, non corrispondenti. Ho anche provato la funzione datadiff, e ottengo sole le ore, ed io vorrei anche minuti e secondi. Mi potete indicare cosa sbaglio e quale stringa utilizzare, avendo riportato il nome dell tabella e i due campi interessati. Grazia anticipatamente.

14 Risposte

  • Re: Calcolo ore straordinario.-

    Salve!

    ho scritto una stringa SQL

    ho calcolato DateDiff("s",[inizio],[fine]) che mi da' il numero di secondi

    poi ho fatto la parte intera della divisione e il resto

    SELECT Attività.Inizio, Attività.Fine,
    DateDiff("s",[inizio],[fine]) AS totDiffSecondi,
    DateDiff("s",[inizio],[fine])\(24*3600) AS nGG,
    (DateDiff("s",[inizio],[fine]) Mod (24*3600))\3600 AS nHH,
    ((DateDiff("s",[inizio],[fine]) Mod (24*3600)) Mod 3600)\60 AS nMin,
    (DateDiff("s",[inizio],[fine]) Mod (24*3600) Mod 60) Mod 60 AS nSec
    FROM Attività;

    Fammi sapere
  • Re: Calcolo ore straordinario.-

    Ho provato a inserire il codice in un campo aggiuntivo di query sulla prima riga, dove ho scritto Ore:DateDiff("s",[inizio],[fine]), facendo esegui per vedere se miricavava i secondi mei da il seguente messaggio operanso o operatore mancante, carattere o virgola non valida oppure testo immesso non racchiuso tra virgolette. Dopo esegui il cursore si posiziona sulla virgola dopo "s". Puoi indicarmi cosa sbaglio e se devo inserire il codice inviatomi nella query con il generatore di espressione. Ciao e grazie
  • Re: Calcolo ore straordinario.-

    Questo e' il codice SQL

    quando crei una query hai 2 possibilità di crearla:
    1) visualizzazione struttura e allora il codice dei campi devi convertire datediff("s",...,...)

    togli la virgola e metti puntovirgola

    2) passi a visualizzazione SQL e incolli cosa ho scritto

    fammi sapere
  • Re: Calcolo ore straordinario.-

    Sono riuscito, con l'aiuto di un amico, a ottenere ore,minuti e secondi, ti ringrazio per il suggerimenti. Li ho ottenuti in una query in tre campi diversi, questo non sarebbe un problema, ma eseguendo la somma di ogni campo, per le ore non c'è problema, ma per i muniti e i secondi non quello che volevo ottenere, somma tutto e riporta e visualizza oltre i 60. Vorrei ottenere un risultato sime all'esempio 35:44:05, cio'è i muniti e i secondi sommandoli dovrebbero incrementarsi di 1 ogni 60. Spero di non approfiare roppo della ua bontà, viso la mia insufficiente conoscenza di SQL, in una query ho ottenuto alla fine un record totale, dove nei campi numerici mi fa eseguire la somma. creando un report dalla sessa query questo campo dei toali non viene riporato, come posso fare per avere quesi toali. Grazie
  • Re: Calcolo ore straordinario.-

    Ciao
    non esitare a chiedere.
    prima di tutto vai nella query che hai creato.
    (che versione hai di access?
    passa alla visualizzazione SQL

    e riporta la stringa che hai ottenuto
    se vuoi duplica la query e poi passando anche qui in visualizzazione SQL incolla la stringa che ti avevo passato.

    Fammi sapere

    PFMarro
  • Re: Calcolo ore straordinario.-

    Ho access 2007.
    Ho constatato che con la funzione CDate[fine[-[iniziò]) ottengo la differenza come vorrei, un unico campo nel quale riporta la differenza delle ore, dei minuti e dei secondi, ma superando le 24 ore da dei risultati sbagliati.
    Usando la funzione DateDiff("h";[inizio];[fine]) ottengo la differenza sole delle ore arrotondate per eccesso, esempio la differenza tra ora inizio e ora fine e' 3,31, lui riporta 4 e la sommarie record calcola correttamente anche se si superano le 24 ore.
    Io vorrei ottenere che nello stesso campo ci siano le ore i muniti e i secondi.
    Riporto di seguito il nome della tabelle e i campi interessati:
    Nome: tabella Attività'
    Campo: iniziò proprietà' data/ora
    Campo: fine proprietà' data/ora

    Simulazione dati
    Campo inizio 02/04/2013 07:30:40
    Campo fine 03/04/2013 09:50:30
    Risultato da ottenere in un unico campo: ORE: 27:21:10
    Spero di aver esposto in modo esauriente la mia difficoltà' e l'esigenza, non so se ciò' sarà' possibile, comunque vi ringrazio anticipatamente.
  • Re: Calcolo ore straordinario.-

    Ho letto il tuo messaggio
    ho fatto un esempio anche se non capisco il tuo

    ho messo in un file mdb il tutto
    prova a scaricarlo e a vedere
    http://pfmarrotemp.ALTERVISTA.ORG/temp/iprogrammatori.mdb


    la tua simulazione
    Simulazione dati
    Campo inizio 02/04/2013 07:30:40
    Campo fine 03/04/2013 09:50:30
    Risultato da ottenere in un unico campo: ORE: 27:21:10

    non dovrebbe essere 26:19:50
  • Re: Calcolo ore straordinario.-

    Dalla mia simulazione ho eseguito questo calcolo:
    07:30:40 del 02/04/2013
    09:50:30 del 03/04/2013 sono
    26:80:70 eseguendo la trasformazione si ha
    26:81:10 proseguendo si ottiene 27h:21min:10 secondi
    27:21:10 questo dovrebbe essere il risultato trasformato per differenza tra l'orario di inizio e l'orario di fine.
    Non sono riuscito ad aprire il tuo file perché' sono con l'ipad, a prescindere dell'esattezza del calcolo si potrà' ottenere il risultato su indicato?
  • Re: Calcolo ore straordinario.-

    kar61 ha scritto:


    Dalla mia simulazione ho eseguito questo calcolo:

    prova a mettere in excel il tuo esempio e vedi cosa ti da'
    quando vedi il mio file fammi sapere. se credi inviami in messaggio privato al tua mail

    07:30:40 del 02/04/2013
    09:50:30 del 03/04/2013 sono
    26:80:70 eseguendo la trasformazione si ha
    26:81:10 proseguendo si ottiene 27h:21min:10 secondi
    27:21:10 questo dovrebbe essere il risultato trasformato per differenza tra l'orario di inizio e l'orario di fine.
    Non sono riuscito ad aprire il tuo file perché' sono con l'ipad, a prescindere dell'esattezza del calcolo si potrà' ottenere il risultato su indicato?
  • Re: Calcolo ore straordinario.-

    Ho verificato quanto mi hai mandato, la colonna cctotale va bene. Ti chiedo è necessario avere le altre colonne s; nGG;nHH;nMin; e nnsec. Inoltre come posso avere la totalizzazione della colonna ccTotale. La funzione totale, nella query, prevede solo conteggio.
  • Re: Calcolo ore straordinario.-

    Allora il tuo calcolo era errato?

    non mi hai risposto
    non sono necessarie le altre colonne: ho inglobato il tutto in quella
    tieni conto che il risultato e' una stringa per ora
  • Re: Calcolo ore straordinario.-

    Ho verificato il mio calcolo e' reato, il risultato e' 26:19:50.
    Come si può' ottenere sulla stessa query e poi sul report il totale delle ore minuti e secondi, considerando che la contabilizzazione deve essere eseguita in sessantesimi. Prendendo spunto dalla tua query inviato i, il totale dovrebbe essere 74:30:10
  • Re: Calcolo ore straordinario.-

    Buongiorno ho un db access con una tabella con dei campi lavoratore ore, vorrei ottenere il totale per lavorare scegliendo il lavoratore usando una cbo
    Ho creato una maschera con una cbo e un txtbox collegate ai campi. Nella cbo e nel origine riga ho creato una query, poi ho creato una nuova query con stessi campi, quindi torno alla txt ore e nel origine controllo ho scritto =DSum("ore";"querytot";"lavoratore="&[cbosceglilavoratore])
    Nel campo ore mi chiede##nome
    Ho provato a mettere anche i doppi apici su lavoratore ma mi da errore
    Dove sbaglio?grazie
  • Re: Calcolo ore straordinario.-

    Ma perché continui questo thread di 4 anni fa ?
Devi accedere o registrarti per scrivere nel forum
14 risposte