Gestione progetti: tabella mensilizzata di inserimento dati

di il
12 risposte

Gestione progetti: tabella mensilizzata di inserimento dati

Buongiorno a tutti

non sono un programmatore professionista e ho un problema in caccess che non capisco come affronatare.
Ho un database sviluppato un po' di tempo fa, con access 2016. Tra l'altro contiene una tabella Commesse e una tabella correlata delle risorse da impegnare per realizzarla, Attrib_Costi_Comm. Le risorse sono attribuite alle commesse per numero complessivo di giornate di ogni singola persona fisica da impegnare.

Ora devo prevedere una mensilizzazione, attribuendo le giornate ai diversi periodo di vita della commessa (l'attribuzine a singole date non ha senso). Poiché in commessa esiste una data di avvio e una data di fine prevista, con una query ho creato un insieme di valori Anno/Mese che definiscono i periodi mensili nell'arco di vita utile della commessa.

A ognuno di quei valori, i mesi appunto, vorrei associare delle giornate attribuite, ma vorre evitare all'utente (sono i PM e decisamente hanno poco tempo) di inserire in ogni record la coppia Anno/mese e vorrei rendere disponibile per ogni commessa una 

tabella da riempire con in testata di riga le persone, in testata di colonna i mesi, dove inserire le gg negli opportuni incroci. 

Nella mia idea quella tabella dovrebbe essere una sottomaschera aggiuntiva nella già esistente maschera della commessa, oppure una sottomaschera indentata nella già esistente sottomascera di attribuzione delle risorse alla commessa.

Ma al di là della posizione, che non mi pare un problema, non riesco a capire come generare quella tabella da riempire.

Ringrazio chi avrà la pazienza di leggermi e a maggir ragione chi volesse darmi un suggerimento di orientamento sul tipo di soluzione da usare.

12 Risposte

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    07/03/2024 - Brunico59 ha scritto:


    una tabella Commesse e una tabella correlata delle risorse da impegnare per realizzarla, Attrib_Costi_Comm

    Potresti esplicitare tutti i campi di queste due tabelle?

    Poi rispiega tutto usando i nomi propri dei campi interessati.

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    Intanto grazie per l'attenzione.

    I campi della tabella commesse sono

    CodiceTesto breve
    OggettoTesto lungo
    Data avvioData e ora
    Data fineData e ora
    Tipo_CTesto breve
    Stato_commessaTesto breve
    Project ManagerTesto breve
    PmIDIntero
    Client LeaderTesto breve
    ClIDIntero
    Cons/FormTesto breve
    PracticeTesto breve
    MacroSettTesto breve
    IndustryTesto breve
    #ReferenzaIntero
    BuonEsitoSì/No
    RendicontabileSì/No
    ApprovazioneSì/No

    i campi della tabella correlata Attrib_Costi_Comm    sono

    ID

    Intero lungo

    ID_Commessa

    Testo breve

    Id risorsa prof

    Intero lungo

    n gg preventivo

    ID replica

    Spese attr

    Intero lungo

    Tariffa_ProfCom

    Intero lungo

    La relazione è uno a molti tra Codice nella tabella Commesse e ID_Commessa nella seconda tabella. Grazie a questa relazione ho già nella mascera commessa una sottomaschera che appare grossomodo così.

    Id fornitoreRagione SocialeTariffan gg prev.Budget gg attribuito Budget Spese attrib
    2Mario Rossi30060   18.000   1.000
    4Lucia Bianchi40050   20.000   2.000
    SMAttribuzCommessa

    Fin qui quello che ho già. Ora vorrei che i PM piafificassero le commesse tempificando gli impegni, per poter gestire le risorse e capire avanzamenti e ritardi, quindi vorrei che le 60 + 50 gg attribuite fossero mensilizzate.

    Per fa questo ho già un po' di informazioni: poniamo che  i campi Data avvio e Data fine indichino che si va dal 1 marzo ‘24 al 31 ottobre ’24. Attraverso una query PeriodoUtileComm mi genero un campo Anno/Mese in formato aa/mm, che in questo caso assume 8 valori, 24/03, 24/04, …, 24/10, i mesi per i quali vorrei venisse fatta la previsione di impegno delle risorse.

    Per registrare questa previsione mi serve un nuovo campo, che chiamo ggAttribMese

    a questo punto per ogni commessa posso avere delle triadi: Id risorsa prof; Anno/mese; ggAttribMese. L'unica informazione che mi manca e che chiedo di inserire è l'ultima, perché ho già Id risorsa prof e Anno/mese. Per questo vorrei creare una maschera di inserimento che metta a disposizione del PM che la dovrà compilare uan tabella con in testa di riga ogni valore previsto per la commessa di Id risorsa prof (Invero poi gli metterò in chiaro nome e cognome) e in intestazione di colonna ogni singolo valore del campo Anno/mese. Una cosa fatta pressapoco così

       24/03  24/04  24/05  24/06  24/07  24/08  24/09  24/10
    2. Mario Rossi................
    4. Lucia Bianchi................

    Non riesco a capire con quale meccanismo generare quest'ultima tabella. Va da sé, mi pare, che poi i valori effettivi delle triadi qui sopra saranno nello stesso numero dei campi effettivamente compilati della tabella.

    Spero che così risulti più chiaro

    di nuovo grazie per l'attenzione

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    Uhm… lo sviluppo va fatto in verticale aggiungendo record di avanzamento lavori (una sorta di diario). Non puoi aggiungere colonne per avanzamento lavori.

    Dalla riga delle ditte subappaltatrici devi tirare fuori una scaletta (appunto verticale).

    Anche il fornitore ha un inizio e una scadenza. Man mano prevedi dei controlli alle scadenze.

    Master: nr.commessa;  datainizio; blabla;

    Nella sittomaschera (detail subappalti)

    Fornitore|datainizio|consegna|blabla…|

    Pippo.        01/01/24.  26/08/24.  *****

    Pluto   bla bla…

    Per ogni riga della sub vedi/inserisci l'andamento.

    Se pippo è selezionato nella subsub hai

    Data        |descrizione| previsione | gg ritardo

    01/01/24| scavo          |    31/01/24 | 0      

    01/02/24| fondamenta…….

    01/03/24| piano terra……

    Ecc…

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    07/03/2024 - OsvaldoLaviosa ha scritto:


    La relazione è uno a molti tra Codice nella tabella Commesse e ID_Commessa nella seconda tabella.

    Fin qui ti seguo.

    07/03/2024 - OsvaldoLaviosa ha scritto:


    Grazie a questa relazione ho già nella maschera commessa una sottomaschera che appare grossomodo così.

    Id fornitoreRagione SocialeTariffan gg prev.Budget gg attribuito Budget Spese attrib
    2Mario Rossi30060   18.000   1.000
    4Lucia Bianchi40050   20.000   2.000

    Qua mi perdo. Sembra che SMAttribuzCommessa faccia riferimento a una query…di cui non ci dici come ci arrivi (oppure non l'ho capito io). Comunque vedo campi che non corrispondono alla tabella Attrib_Costi_Comm: Boh!

    sihsandrea sembra aver intuito qualcosa…effettivamente devi pensare a inserire i dati “per quello che sono” (normalizzati, in verticale). Il fatto che poi vuoi vederli come li hai esposti, ciò è compito da delegare a una query (forse a campi incrociati…ma ripeto, mi sono perso).

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    07/03/2024 - sihsandrea ha scritto:


    Uhm… lo sviluppo va fatto in verticale aggiungendo record di avanzamento lavori (una sorta di diario). Non puoi aggiungere colonne per avanzamento lavori.

    Bene, grazie. Questo vuol dire che mi devo inventare qualcosa di diverso. 
    Invero non avevo bisogno di avanzamento lavori , ma di un budget mensilizzato, da compilare tutto in una volta a cura del capo progetto, per ogni risorsa impiegata. Ma al di là di questo, che non è il mio punto principale, la risposta è chiara: non posso immaginare di trasformare una serie di record in una tabella a doppia entrata, ma devo immaginare per ogni commessa uno sviluppo verticale delle triadi Id risorsa prof; Anno/mese; ggAttribMese.

    Mi sembra che la modalità più efficace sia creare una tabella che chiamo PrevMeseImpegni, contenente ID_Commessa; Id risorsa prof; Anno/mese; ggAttribMese e creare una query di accodamento con la quale generare un record per ogni triade ID_Commessa; Id risorsa prof; Anno/mese. Esempio:

    CodiceId risorsa profAnnoMese
    R24.00012024/01
    R24.00012024/02
    R24.00012024/03
    R24.00012024/04
    R24.00012024/05
    R24.00012024/06
    R24.00012024/07
    R24.00012024/08
    R24.00012024/09
    R24.00022024/01
    R24.00022024/02
    R24.00022024/03
    R24.00022024/04
    R24.00022024/05
    R24.00022024/06
    R24.00022024/07
    R24.00022024/08
    R24.00022024/09
    R24.00112024/01
    R24.00112024/02
    R24.00122024/01
    R24.00122024/02
    Q2_MesiUtiliTempi

    Vado ad accodare i dati in PrevMeseImpegni tramite un controllo di azione, e devo quindi stare attento ad evitare duplicazioni nella tabella di destinazione, ma non mi sembra un gran problema. A quella tabella associo una sottomaschera SMPrevMeseImpegni, nella maschera Commesse; e lì Il PM avrà solo l'onere di inserire le singole previsioni mensili ggAttribMese associate a ogni risorsa e ogni mese attivo della commessa.

    Scrivo la soluzione perché continuando a cercare ho trovato altri post che ponevano il problema della creazione di una tabella di inserimento strutturata con dati provenienti da alti campi o query, la cui risposta era sempre uno sviluppo verticale (eventualmente con struttura di 3 tabelle tali da creare una relazione molti a molti).

    Spero possa essere utile e comunque grazie per i contributi.

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    Sinceramente mi è venuto il mal di testa…

    Se una commessa ha tre scadenze, nel modo in cui l'hai pensata, hai tre campi data (le cadenze).

    Se aggiungi una commessa a 4 scadenze devi aggiungere un campo. Meglio aggiungere un sottorecord.

    Poi in visualizzazione puoi svilupparli come meglio credi anche con i pupazzetti colorati…

    La tabella che hai inserito, purtroppo, non mi dice nulla. Codice, risorsa e anno non capisco cosa siano.

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    07/03/2024 - Brunico59 ha scritto:


    pressapoco così

       24/03  24/04  24/05  24/06  24/07  24/08  24/09  24/10
    2. Mario Rossi................
    4. Lucia Bianchi................

    Non riesco a capire con quale meccanismo generare quest'ultima tabella. Va da sé, mi pare, che poi i valori effettivi delle triadi qui sopra saranno nello stesso numero dei campi effettivamente compilati della tabella.

    Questa la crei da codice in base alle date della commessa…

    11/03/2024 - Brunico59 ha scritto:


    . A quella tabella associo una sottomaschera SMPrevMeseImpegni, nella maschera Commesse; e lì Il PM avrà solo l'onere di inserire le singole previsioni mensili ggAttribMese associate a ogni risorsa e ogni mese attivo della commessa.

    Pm mi fa venire in mente il Pubblico Ministero…

    Mah, io pensavo che date le PrevMeseImpegni le date le dovesse mettere chi carica la commessa.

    Il pm va alla data di previsione e “controola che tutto prosegue” (?) altrimenti inserisce una nota di difformità (?)…

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    11/03/2024 - sihsandrea ha scritto:


    07/03/2024 - Brunico59 ha scritto:


    pressapoco così

       24/03  24/04  24/05  24/06  24/07  24/08  24/09  24/10
    2. Mario Rossi................
    4. Lucia Bianchi................

    Non riesco a capire con quale meccanismo generare quest'ultima tabella. Va da sé, mi pare, che poi i valori effettivi delle triadi qui sopra saranno nello stesso numero dei campi effettivamente compilati della tabella.

    Questa la crei da codice in base alle date della commessa…

    Ciao.
    non immaginavo che fosse così difficile spiegarsi in chat e decisamente non volevo far venire a nessno il mal di testa…

    In effetti non ho 3 o 4 scadenze predisposte di commessa, ho solo una data di inizio e una di fine, e quindi un elapsed tra inizio e fine, che esprimo in mesi; nel acaso che sto usando ad esempio i mesi sono 8 e sulla commessa lavorano solo 2 risorse, per semplificare, ma potrebbero essere anche una decina.  Chiedo al mio Project Manager di fare una previsione di andamento della commessa e di assegnare compiti, che nel gestionale si traducono in giornate assegnate a persone nei vari mesi.

    L'unico problema che è di usabilità, perché non voglio chiedere ai PM, che hanno il loro bel da fare, di mettersi a inputare dati in qualche modo già disponibili. Per questo mi serve una qualche tabella di semplice compilazione a disposizione dei PM. Quale sia la soluzione migliore per questo obiettivo è la mia domanda di fondo in tutta la conversazione. 
    La tabella qui sopra è nella mia idea la soluzione più usabile per il povero capo progetto. Ora tu mi scrivi, e ti ringrazio, che questa la creo da codice in base alle date della commessa. Può darsi che questo sia alla mia portata, può darsi che no, spero di sì.

    In ogni caso a me serve di avere una attribuzione di gg associata a una commessa, un mese ed una persona. Se esiste una strada per una tabella come quella sopra riportata, la seguo volentieri. Altrimenti seguo la precedente indicazione, che mi consigliava di seguire uno sviluppo verticale e in base alla quale ho generato una tabella fatta grossomodo così:

    CodiceId risorsa profAnnoMeseggAttribMese
    R24.00042024/01
    R24.00042024/02
    R24.00042024/03
    R24.00042024/04
    R24.00042024/05
    R24.00042024/06
    R24.00042024/07
    R24.00042024/08
    R24.00042024/09
    R24.00022024/01
    R24.00022024/02
    R24.00022024/03
    R24.00022024/04
    R24.00022024/05
    R24.00022024/06
    R24.00022024/07
    R24.00022024/08
    R24.00022024/09

    Questa dal punto di vista logico è del tutto equivalente alla precedente, dal punto di vista dell'usabilità, è decisamente meno efficace.

    Grazie ancora

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    Ed è quest'ultima soluzione che devi applicare.

    Se pubblichi un file di esempio, con un minimo di dati e potendo sfruttare la struttura da te creata, è possible anche farti vedere tramite maschere come gestirla.

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    Vi ringrazio per i feedback e i consigli.
    per quel che riguarda l'ultima soluzione, quella a svilppo verticale, vi ringrazio per le ulteriori offerte di aiuto, ma dopo l'indicazione ricevuta l'ho già implementata e funziona. Mi rimane che non è il massimo dal punto di vista dell'usabilità, ma intanto funziona. Quindi per il momento mi fermo qui e non approfitto oltre della vostra cortesia.
    Dovessi avere delle crisi di rigetto da parte dei PM, magari riprendo la conversazione, …

    Buon lavoro a tutti

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    Buonasera a tutti

    Torno sull'argomento del post precedente con una richiesta su un problema operativo che non riesco a risolvere.  Per generare la tabella a 4 colonne riportata sopra (Codice, IdRisorsaProf, Anno/Mese, ggAtribMese ho fatto ricorso a una query di accodamento, piuttosto normale. La tabella nasce con tre campi compilati e con un quarto da compilare. Su quella base ho creato una sottomaschera SM_AttribDett, che sta in una maschera principale Commessa, Con relazione tra le due definita da Codice Commessa. La predisposizione della tabella da compilare è attivata da un pulsante di azione cui è colegata una macro di comando che lancia la query di accodamento, che funziona benissimo.
    Tuttavia la sottomaschera si aggiorna solo se:

    a) Cambio il record Commessa e ritorno a quello su cui ho impostato, o chiudo la maschera e la riapro

    b) Clicco la sottomaschera e uso il comando aggiorna tutto da menù

    Il che comporta un altro problema di usabilità. Per superarlo vVorrei che il pulsante di azione realizzasse anche il refresh della sottomaschera, ma non ho trovato una soluzione nè nelle macro e neppure andando su una routine VBA non riesco a ottenere il refresh.

    Le istruzioni che ho provato sono le più varie, senza risultato. Quella che mi pare più logica è 

    me![SM_AttribDett].form.requery
    me![SM_AttribDett].form.refresh

    Qualcuno mi sa dire come superare il problema, vuoi usando un'istruzione macro, vuoi usando un set di stringhe VBA?

    Grazie

  • Re: Gestione progetti: tabella mensilizzata di inserimento dati

    19/03/2024 - Brunico59 ha scritto:


    Per generare la tabella a 4 colonne riportata sopra (Codice, IdRisorsaProf, Anno/Mese, ggAtribMese ho fatto ricorso a una query di accodamento, piuttosto normale.

    Fino a qua ti seguo…

    19/03/2024 - Brunico59 ha scritto:


    La tabella nasce con tre campi compilati e con un quarto da compilare.

    Non sempre puoi aggiornare i dati da una vista tabella (o campo) derivata da una query (mancherebbero le condizioni che l'anno generata).

    Se, ad esempio, estrapoli i clienti di milano e cambi la città con torino, non ti ritrovi più il cliente nella lista della query.

    Se, altro esempio, estrapoli un cliente e il suo estratto conto derivato dalla tabella, supponiamo, scadenze, non puoi scrivere un importo diverso nel campo “saldo” perché deriva dalla tabella estratticonto. Per modificare il saldo devi necessariamente editare la tabella estratticonto.

    Spero di essere stato chiaro.

    A parte che non vedo come hai creato la query, viene spontaneo chiedere: non potevi aggiornare quell'unico campo sempre da sql? Update bla bla dati in select… bla bla… attingendo ad un dato esterno.

    Supponiamo tu abbia pippo ed effettua un pagamento, puoi non accedere alla tabella estratticonto ma lanciare una sql che punta alla tabella estratti ed inserisce un pagamento, poi aggiorni la query. L'importo per il record selezionato puoi inserirlo da una inputbox che si apre al pulsante “aggiungi pagamento”. Specularmente puoi avere anche il pulsante “storna pagamento” (o in unico input l'importo col segno meno per stornare e più per aggiungere). Gli altri campi saranno id, dataoperazione, descrizione (pagamento/storno), importo. Sempre nell'esempio che faccio io.

    Aggiungi la tabella col campo da modificare, la metti come figlia alla query dal campo in comune ed editi la tabella.

    Dopo l'inserimento fai un requery e risolvi.

    Questo da quello che ho capito.

    P.s. per modificare i dati è sempre buona norma aprire il form che li gestisce. Una query serve per confrontare i dati e, all'occorrenza, prelevare l'id, aprire il form di gestione, posizionarsi all'id prelevato, andare in fase di edit e modificare il record.

    Quindi se devo modificare il cliente apro il form clienti, per le fatture apro il form fatture, per lo scadenziario apro il form scadenziario ecc..

Devi accedere o registrarti per scrivere nel forum
12 risposte