Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Access] - Tabelle con orari

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Access] - Tabelle con orari

Postdi barbagianni62 » 14/05/16 15:34

Ciao a tutti,
sinceramente non sapevo che titolo usare perché il problema penso sia soprattutto di non aver chiaro come strutturare il programma, per cui chiedo cortesemente il vostro aiuto!
Ho un database Access con una tabella "tabElencoOperatori" nella quale oltre ad altri campi c'è quello "oreLavorate" in cui vengono riportare delle ore in formato numerico che si incrementano unicamente di 15 minuti (per cui avrò 1,25 per 1ora e 15 min, 1,50 per 1ora e 30min, 1,75 per 1 ora e 45min). Alla conclusione del mese, lancio una query che mi restituisce la somma delle ore lavorate in tutto il mese e me le approssima sempre per difetto all'ora intera (ad esempio somma=425 ore e 75 saranno arrotondate a 425). La mia esigenza è quella di sommare la parte rimanente a quella che ho dichiarato ( 0,75 come nell'esempio) al mese successivo ed arrotondare la cifra sempre per difetto e così via sempre per i mesi a seguire.
Ora vi chiedo: per favore, come devo impostare il programma???
Grazie.
barbagianni62
Utente Junior
 
Post: 22
Iscritto il: 10/09/12 11:12

Sponsor
 

Postdi archimede » 16/05/16 12:52

In generale avere dei campi di tabelle che contengono dei dati calcolati è una pessima idea.

Nello specifico, avendo già una query che funziona, non ho capito quale problema hai a farne una simile (o modificare quella esistente) che calcoli la differenza tra il valore arrotondato e quello reale.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: [Access] - Tabelle con orari

Postdi wallace&gromit » 16/05/16 16:06

Penso che barbagianni non abbia problemi a calcolare il valore, il problema è come poi inserirlo affinché sia considerato il mese successivo.
Mi immagino qualcosa (una macro?) che crei automaticamente alla fine del mese un campo nel mese successivo (p.es. sempre con la data del primo del mese) che abbia valore pari al resto delle ore.

Come fare non saprei proprio, ma mi sembra che tu, archimede, abbia superato in passato ostacoli ben più difficili.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Postdi archimede » 17/05/16 08:47

Dipende da cosa si deve fare (io non l'ho capito esattamente) ma, una volta che hai una query che calcola il "resto" per ogni mese, basta fare una SELECT (del mese precedente) per ottenerlo.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: [Access] - Tabelle con orari

Postdi barbagianni62 » 17/05/16 20:21

Ciao a tutti. Non mi serve solo calcolare la differenza fra il risultato e il valore arrotondato.
Il 'resto' di questa operazione ( 0.75 ore per fare riferimento all'esempio ) deve essere sommato al totale del mese successivo ed il valore ottenuto deve essere approssimato ancora per difetto. In pratica devo salvare questo resto, altrimenti la soluzione sarebbe sommare tutti i record delle ore lavorate (sin dal primo inserimento sino al valore del mese precedente) sommare tutti i record del valore approssimato delle ore (sin dal primo inserimento sino al valore del mese precedente) quindi fare la differenza e sommarlo al valore del mese in corso - Mi sembra una soluzione macchinosa.

Pensavo invece di creare una query ad-hoc con dei campi che mi restituiscano ogni primo del mese i vari dati:
- somma delle ore mensili.
- ore dichiarate.
- differenza per quel mese.
Salvare tutti questi dati in una tabella. Voi cosa ne pensate???
Ciao e grazie. Buona serata a tutti.
barbagianni62
Utente Junior
 
Post: 22
Iscritto il: 10/09/12 11:12

Re: [Access] - Tabelle con orari

Postdi wallace&gromit » 17/05/16 21:27

Io penso di avere capito giusto il problema e penso che la soluzione migliore sia di inserire il valore iniziale del mese fisicamente nella tabella delle ore, ma archimede aveva delle reticenze, vediamo se spiegando passo per passo come farei io arriviamo ad una soluzione.

Facciamo finta di fare tutto manualmente
1) Ogni giorno inserisco le mie ore in una tabella.
2) Alla fine del mese calcolo il totale e lo arrotondo verso il basso.
3) Mi annoto la differenza
4) creo una immissione fittizia di quella frazione di ora al primo giorno del mese successivo
5) idea che mi viene adesso: meglio ancora se all'ultimo del mese in corso metto lo stesso valore fittizio in negativo (in questo modo la somma totale sarà corretta).
Quando farò il totale delle mie ore per il mese successivo le ore del primo giorno del mese saranno di nuovo conteggiate.

Ora si tratta di automatizzare i passi da 3 a 5, cosa che io, come detto, non so fare, ma confido in archimede pitagorico e la sua lampadina edy.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Postdi archimede » 18/05/16 08:36

Se dovessi farlo io non scriverei nulla da nessuna parte: se per disgrazia devo modificare un dato, mi tocca rifare tutti i calcoli da quel mese in poi e risalvarli? Mi vengono i brividi solo a pensarci.

Hai detto che non hai problemi a fare la query che calcola il totale e il resto: se posti il codice di quella query possiamo vedere se c'è un modo per automatizzare il calcolo.

Se proprio insisti nel salvare i dati, la strada indicata da Wallace può essere un'opzione (che è poi simile a quello che hai in mente tu, mi pare): calcoli il resto, lo salvi in una tabella e quando rifarai il calcolo il mese successivo dovrai andare a prendere anche questo dato e includerlo nella somma.

Ma non credo si possa fare con una singola query: c'è forse da scrivere del codice, rivedere il disegno delle tabelle, ecc.: non una cosa che si può affrontare in una conversazione su un Forum, se non in termini generali come fatto qui. Soprattutto non senza sapere come sono fatte ESATTAMENTE le tabelle coinvolte.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: [Access] - Tabelle con orari

Postdi barbagianni62 » 21/05/16 18:26

Scusate per il ritardo ma per alcuni giorni ho girato intorno al problema senza alcun risultato.
Se facessi come dice wallace, aggiungerei un valore fittizio all'inizio, ma poi dovrei 'accreditare' delle ore ad un operatore fittizio (e in questo caso avrei un numero di operatori maggiore come risultato) mentre se accreditassi delle ore ad un operatore già presente mi sballerebbe il conteggio per quell'operatore.
Se facessi come dice archimede è vero che se dovessi correggere un dato la variazione mi viene calcolata dalla query, ma è anche vero che questa riporta i conteggi dall'inizio (dal primo mese di immissione) fino alla data dell'ultimo inserimento.
Da parte mia (pur senza riuscirci) stavo cercando di creare una tabella che mi riporti:
1 - il conteggio delle ore del mese in corso
2 - la rimanenza del mese precedente
3 - la somma dei punti 1 e 2
4 - le ore approssimate del mese in corso
5 - quindi la differenza tra i punti 4 e 3 - valore dell'arrotondamento del mese in corso.
Questa tabella verrebbe popolata da una query di accodamento dati.
Boh!! Vediamo cosa salta fuori. Ancora sono in --------> alto mare.
Se vi dovesse venire qualche idea ve ne sarei grato. :)
Ci sentiamo. Grazie del vostro impegno
barbagianni62
Utente Junior
 
Post: 22
Iscritto il: 10/09/12 11:12

Re: [Access] - Tabelle con orari

Postdi wallace&gromit » 21/05/16 23:11

Penso che ti sei fatta un'idea troppo complessa della mia proposta, che tra l'altro è il metodo che uso veramente (però solo per il computo annuale, quindi lo faccio a mano).
Esempio:
In dicembre 2015 mi sono accorto di avere fatto più ore di quante erano richieste per contratto.
Per arrivare ad avere un computo nullo introduco in data 31 dicembre delle ore fittizie negative, usando il codice riservato ai giorni di libero extra.
Nei primi giorni di gennaio 2016 vado a farmi qualche bella sciata, inserisco le ore usando lo stesso codice al posto di quello ustao normalmente per le vacanze (che altrimenti mi scalerebbe dalle ferie di diritto) fino a pareggiare le ore fittizie negative introdotte nel 2015.
In questo modo il bilancio delle ore 2015 risulta nullo (anche se ho lavorato di più) ma le ore in esubero le ho recuperate nel 2016.
Come detto questo io lo faccio manualmente, sempre solo in una tabella, quella dove inserisco tutte le mie ore.

Nel tuo caso, visto che 0.75 ore non sono sufficienti per andare a sciare e che a maggio comunque la cosa è poco proponibile e che fare l'operazione manuale tutti i mesi diventa un po' pesante, ho proposto di automatizzare il tutto, per esempio con una macro, però, come già detto, non sono in grado di svilupparla.

In ogni caso per portare avanti un discorso costruttivo dovresti allegare un esempio di due mesi fittizi ma completi su cui lavorare, magari provando ad introdurre manualmente la mia soluzione, per vedere se ha l'aria di funzionare.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21


Torna a Applicazioni Office Windows


Topic correlati a "[Access] - Tabelle con orari":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti