Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Funzione su Access: come creare? Necessaria?

  1. #1
    RiccardoA non è in linea Scolaretto
    Ciao Ragazzi

    Vi pongo anche oggi un quesito sul mio DB gestione dei guasti. Devo calcolare le ore di fermo della macchina, andando però a considerare però i giorni in cui la macchina è stata ferma a livello di ore lavorativa. Il dettaglio di sicuro vi aiuta:

    Ho creto una tabella "calendario lavorativo" dove per ogni data del 2011 sono specificate le ore di funzionamento previste per il giorno: possono infatti essere 8, 9 o 0 (vedi i festivi).

    Di conseguenza, ad ogni data ho associato un valore che mi dice le ore che quel giorno si lavora.

    Per il fermo, io posso dire il giorno e l'ora a cui si blocca, e il giorno e l'ora a cui riparte.
    In particolare: la differenza fra l'ora di guasto e le ore previste al giorno, mi darà le ore improduttive per la giornata start, e una cosa simile la posso fare per la giornata stop guasto.

    In mezzo cadono però delle ore qualora non riesco a ripartire lo stesso giorno: quindi per un record "giorno"
    compreso fra il giorno start e il giorno STOP mi ritrovo delle ore intere.

    Una volta inseriti questi dati, io riesco a calcolare le ore di fermo.

    Alla fine il mio risultato è dato da una somma di termini che esiste solo se ci sono giorni "di mezzo" fra inizio e fine lavori + le ore di fermo calcolate per il giorno di start e per il giorno di stop guasto.

    A questo punto vi chiedo: secondo voi, è più corretto fare calcolare le ore di fermo ad una query, o creare una funzione che, basata su delle query che mi estraggono i valori richiesti, mi da il risultato?

    Spero di essermi spiegato.

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Che differenza passa tra questo tuo 3D e quast'altro al quale hai avuto già una risposta molto esplicita: http://forum.masterdrive.it/ms-offic...-access-58241/
    Siccome mi pare che la finalità sia la stessa, trovo inutile aprire 2 discussioni, oltretutto non capisco cosa tui aspetti visto che le funzioni suggerite fanno praticamente quello che hai chiesto, basta apportare piccole modifiche...
    Dovresti quindi imbastire tu il codice necessario a fare quello chei chiedi, e se ci sono errori specifici li risolviamo assieme, ma se non hai le basi per scrivere codice VBA non troverai chi lo scrive per risolvere la cosa, in quanto non è così che si intende.
    ℹ️ Leggi di più su @Alex ...

  3. #3
    RiccardoA non è in linea Scolaretto
    1) Non voglio che nessuno scriva nulla per me, ma cercavo un suggerimento su come agire, se fare una cosa o un'altra.
    2) Quel topic era su come impostare il calendario lavorativo, che ho impostato come ho spiegato qui. La domanda qui è diversa, visto che si parte dal non avere una funzione, ma delle tabelle di partenza e degli altri valori. Anzi, proprio perchè mi sembravano cose diverse, seguendo un tuo suggerimento passato, ho deliberatamente aperto un nuovo topic.

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Avevo travisato il senso della domanda, dovuto al fatto che l'argomento era in realtà aggregabile essendo la stessa finalità...!

    Per risponderti in modo più puntuale in realtà a me servirebbe un'esempio perchè se ho bene inteso la gestione credo che con una Query non sia semplicissimo riuscire ad avere il dato che chiedi.
    Mi spiego meglio, ci sarebbe da capire in modo chiaro quali dati numerici e di che tipo inserisci nella tabella del giorno...
    Se definisci Start-Stop la complicazione di usare una Query è tale da renderla sconveniente, se invece per ogni gg hai tante ore quante quelle previste e per ogni ora hai la definizione di STATO(Marcia/Fermo impianto) allora potrebbe essere più facile
    in quanto definiti i 2 Estremi del periodo di ricerca si generano 2 Query una che somma i tempi di Marcia ed una i Tempi di Fermo e poi si sommano con segno...

    Non so se mi sono capito...?
    ℹ️ Leggi di più su @Alex ...

  5. #5
    RiccardoA non è in linea Scolaretto
    Si si ti ho afferrato.
    Nel mentre che aspettavo un vostro suggerimento ho elaborato una cosa del genere:
    Ho una tabella calendario 2011, fatta così (adesso)

    ID giorno( da 1 a 365, chiave primaria)| Data numerica | Giorno Seriale (1-31 o che è)|Mese|giorno della settimana (lunedì-sabato)|ore lavorative (0,8,9 DA CALENDARIO AZIENDALE)|tipo di giorno (ricavato dalle ore lavorative-> feriale, festivo, flessibilità)|Ora apertura e ora chiusura|

    Con alcune di queste informazioni ho costruito una query unica per il calcolo delle ore di fermo per giorno:

    - Come input, da una maschera estraggo i valori di data e ora di inizio e fine guasto.
    - Sfruttando l'indice dei giorni, posso calcolare giorno per giorno, quante ore di fermo ho avuto, e uso l'informazione dell"apertura chiusura impianto per i due giorni di inizio e fine guasto.
    - Alla fine mi ritrovo che il totale della colonna ore di fermo, con questa espressione, è la mia ora di fermo impianto.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Creare funzione a tempo
    Da Jessi45 nel forum HTML, CSS e JavaScript
    Risposte: 1
    Ultimo Post: 10-10-2015, 21:00
  2. creare una funzione di access che abbia più variabili
    Da lomdom nel forum Microsoft Access
    Risposte: 15
    Ultimo Post: 30-01-2015, 17:15
  3. Creare funzione SE con VBA
    Da silvietto90 nel forum Microsoft Excel
    Risposte: 1
    Ultimo Post: 14-06-2014, 17:32
  4. Risposte: 9
    Ultimo Post: 15-04-2009, 21:31
  5. [VB.NET] Creare una funzione per collegare il DB
    Da marco.santilli nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 09-04-2008, 17:59