Calcolo giorni tra le date di un record e un altro di un report

di Anonimizzato25662 il
18 risposte
Buongiorno a tutti.

Ho creato un semplice database e ho un report con record in sequenza tipo maschera continua, con un campo DATA e altri con nomi di chi effettua il lavoro e il lavoro eseguito che viene estrapolato da una query che filtra e cerca quelle frase.

bene, siccome vorrei sapere da quanti giorni é stato eseguito il lavoro ma vorrei anche che access capisse che quel pezzo é da sostituire solo sull'ultimo record del gruppo, negli altri dovrebbe conteggiare la durata tra una sostituzione e l'altra(tra un record e l altro) mentre nell'ultimo record del gruppo dovrebbe darmi un conteggio parziale, non ho la più pallida idea di come fare.

18 Risposte

  • Praticamente ho bisogno di uno storico che mi ricordi quanto sono durati i componenti di una macchina ormai smontati e sostituiti e che mi dica: guarda che la durata del componente montato l'ultima volta ha xx gg dal montaggio finora.

    Ma ho solo la DATA di montaggio del componente. Altrimenti risolverei con un datediff su stessa riga o altra formula immagino.

    Grazie ancora.
  • Puoi fornire nomi propri di tabelle, campi, query? Poi rispiega tutto il ragionamento usando i nomi propri.
  • Si Osvaldo.

    I campi li ho nominati nomeresponsabile data macchina1 macchina2 lavoroeseguito.

    Sono raggruppati per macchina1 macchina2

    Vorrei che mi venisse conteggiato il tempo in giorni tra un lavoroeseguito tra macchina 1 dalla data precedente alla successiva e sull ultimo lavoro dovrebbe comparire il tempo parziale trascorso.

    Idem per l altro gruppo che riguarda la macchina2. Non so se si può fare con una sola data per record. Chiedo eh
  • Vorrei una descrizione più chiara, ossia:
    - nomi propri di tutte le tabelle che entrano in gioco
    - nomi propri di tutti i loro campi con indicazione della chiave primaria
    - le relazioni
    - rispiega un'altra volta tutto...perché io sono molto molto duro di comprendonio...soprattutto se non ho davanti una struttura tabelle chiara e "normalizzata"
  • Ok allora dovrò rimandare con più calma ora sono al lavoro...
  • Posso inviarti il database con solo tabelle query e report interessati in privato?
  • Buona sera, non voglio complicarmi troppo la vita visto che non è il mio lavoro e non ci guadagno nulla...
    Vediamo se così ottengo più facilmente quello che voglio.

    ho aggiunto un campo "Data_Smontaggio" al campo "Data" che già avevo, dovranno inserire una data i miei colleghi, pazienza.

    Ora per calcolare la differenza in giorni ok =[DATA_SMONTAGGIO]-[DATA] = ottengo i gg che volevo. Ma come faccio a fargli capire che dove non c'è scritto nulla nel campo "data_smontaggio" deve contare i giorni parziali fino ad ora ?


    Qualcuno può aiutarmi?


    Ho Access2013
  • In una query crea un campo calcolato con la funzione IIf. Prova a scrivere ad esempio
    DifferenzaGiorni: IIf(IsNull([Data_Smontaggio])=True;Date()-Data;[Data_Smontaggio]-[Data])
    dove Date() significa la "data odierna".
  • Scusa Osvaldo ma intendi nei criteri del campo calcolato della query?
  • Purtroppo potrò provare solo domani sera comunque grazie
  • veganroby ha scritto:


    Scusa Osvaldo ma intendi nei criteri del campo calcolato della query?
    No, quell'espressione la devi scrivere su una nuova colonna della visualizzazione struttura query, sul primo rigo.
  • Grazie mille Osvaldo, questa sera provo.
  • OsvaldoLaviosa ha scritto:


    In una query crea un campo calcolato con la funzione IIf. Prova a scrivere ad esempio
    DifferenzaGiorni: IIf(IsNull([Data_Smontaggio])=True;Date()-Data;[Data_Smontaggio]-[Data])
    dove Date() significa la "data odierna".

    Va alla grande, grazie.


    C'è un sistema per fare in modo che compaia un alert quando il conteggio parziale dei record "data_smontaggio"raggiunge la durata media degli altri smontati?
  • Devi creare 2 query con i 2 conteggi di cui parli. Questa volta le imposti tu.
    Per l'"alert" devi stabilire tu in quale occasione/evento dovrebbe apparire. Quindi si tratta di implementare un piccolo codice VBA che in sostanza fa
    If DCount("*","Query1") = DCount("*","Query2") Then 
    MsgBox "Attenzione il conteggio parziale dei record data_smontaggio ha raggiunto la durata media degli altri smontati"
    End If
Devi accedere o registrarti per scrivere nel forum
18 risposte