Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Calcolo ore access

  1. #1

    Calcolo ore access

    Buon giorno a tutti, avrei bisogno di un aiutino nel creare un database in Access che mi gestisca le ore. Per ora ho creato tre tabelle ANAGRAFICA (MATRICOLA,nome, cognome) SERVIZIO (COD_SERVIZIO, Tipologia) INSERIMENTO_ORE (MATRICOLA,COD_SERVIZIO,data, Ora_Inizio, Ora_fine);
    la mia domanda è la seguente nella Tabella (o maschera successivamente) INSERIMENTO_ORE non posso creare un campo chiamato durata che è il risultato automatico della differenza tra l’ora di fine e quella d’inizio?? Nel senso ogni qualvolta inserisco nella maschera inserimento ore un turno mi dia in automatico il risultato?? Così poi sarà + facile mediante una query fare la somma raggruppata x matricola. Attenzione!!! Il turno si svolge in notturna per esempio (inizia il 22/7 alle ore 20.00 e termina alle ore 6.30 del 23/7) Grazie per l’aiuto nn sn molto pratico

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Su ogni singolo record, per vedere il tempo lavorato

    codice:
    select Format(([fine]-[inizio]),"hh:mm:ss") AS diff, * from tabella;
    Per ottenere il totale per lavoratore:

    codice:
    select matricola, 
    sum(DateDiff("n",[inizio],[fine]))\60 as ore, 
    sum(DateDiff("n",[inizio],[fine])) Mod 60 as minuti
    from tabella
    group by matricola;
    Aggiungi eventuali clausole where relative al mese ecc.


  3. #3
    ciao nicola grazie x ora sn riuscito a farlo... ma ti chiedo questa cosa... come mai se una persona inizia a lavorare il giorno 1/1 alle ore 18.00 e termina il giorno 2/1 alle ore 8.00 il totale sono 10 ore anzi ke 14? e invece se inserisco per esempio 3 persone che hanno fatto lo stesso servizio nella stessa fascia oraria mi dice: "L'apporto modifiche non riuscito perchè si è cercato di duplicare i valori nell'indice, nella chiave primaria o nella relazione. Modificare i dati nel campo o nei campi che contengono dati duplicati, rimuovere l'indice o ridefinire l'indice per consentire l'inserimento di voci duplicate".

    Grazie per l'aiuto

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ma in che formato salvi inizio e fine?
    Usa un campo di tipo data/ora in formato data generica e anche un campo contatore come chiave primaria.

  5. #5
    I FORMATI SONO:
    data (gg/mm/aaaa)
    inizio (hh:mm)
    fine(hh:mm)

    cmq sia secondo me non è il formato ma c'è qlcs a livello di formula... quando devo fare la differenza tra 18 e 8 del giorno dopo... mi esce 10... secondo me nn tiene in considerazione che il giorno finisce alle 24. cmq volevo chiederti anche xk in qst tabella non mi permentte di inserire + persone che hanno lavorato allo stesso servizio nello stesso giorno stessa ora. Grazie ciao

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da elipollo
    I FORMATI SONO:
    data (gg/mm/aaaa)
    inizio (hh:mm)
    fine(hh:mm)

    cmq sia secondo me non è il formato ma c'è qlcs a livello di formula... quando devo fare la differenza tra 18 e 8 del giorno dopo... mi esce 10... secondo me nn tiene in considerazione che il giorno finisce alle 24.
    Ma access cosa ne può sapere che le tue ore 8 fanno riferimento al giorno successivo.
    Se devi fare calcoli su orari a cavallo tra due giorni devi specificare GIORNO e orario, come ti ho già scritto.

  7. #7
    Grazie nicolaaa come faccio a specificare i due giorni e gli orari?? nella format metto oltre all'orario anche il giorno 1 e il giorno 2?? davvero non la conosco come funzione questa... nn l'ho mai sentita a scuola nn la so usare x questo ti chiedo di aiutarmi a impostare passo passo tutta la formula se uso quella formula iniziale che mi avevi scritto mi calcola solo le ore dello stesso giorno per farla da 1 giorno a 1 altro come la devo impostare?? grazie mille

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Io i suggerimenti te li dò. Sei tu che non li segui.
    Ti ho già scritto di impostare i campi inizio e fine nel formato data generica, cioè:

    gg/mm/aaaa hh:mm:ss

    Vedrai allora che le query restituiranno le differenze attese.

  9. #9
    Nicolaaaa =) ho fatto passo passo quello che mi hai detto.. il problema è sempre lo stesso quando le ore sono a cavallo di 2 giorni... per esempio inizio alle 22 e termino alle 24 (00:00:00 come va scritto in access) non mi conteggia 2 ore ma mi fa 22!
    cmq ho cambiato i formati e li ho messi come mi hai detto tu ma nn è cambiato nulla!Grazie ciao

    Ely

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    L'orario 00:00:00 identifica l'inizio del nuovo giorno. Associagli la data del giorno successivo a quello di inizio turno e la differenza oraria sarà di 2 ore, non di 22.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.