Progettazione database conti economici (già in Excel)

di il
7 risposte

Progettazione database conti economici (già in Excel)

Buongiorno a tutti,
sono un neofita di Access, quindi spero mi perdonerete per le cose stupide che potrei scrivere

Fino ad oggi ho utilizzato un file Excel per gestire i miei conti economici. Tutto andava bene finché la mole di dati era limitata, adesso, dopo quasi un anno, lo strumento comincia a essere limitato. Cercando in rete soluzioni alternative, sono approdato ad Access.

Ho provato a creare un database, e postando una prima domanda su questo forum sono emersi dei limiti logico-strutturali su quello che stavo facendo. Raccogliendo il suggerimento, adesso vorrei provare a spiegare cosa vorrei fare e come lo vorrei organizzare, e chi chiederei di darmi qualche suggerimento e di evidenziare cosa non va e/o come poter migliorare.

IL FILE EXCEL
Il file Excel è organizzato su più schede. In particolare:

Scheda 01: Conto Bancario. In questa scheda sono riportate tutte le spese e gli introiti legati ad un conto bancario. I dati sono inseriti per riga e organizzati per colonna. In particolare:
Colonna 01: Data spesa/introito
Colonna 02: Descrizione spesa/introito
Colonna 03: Entità spesa
Colonna 04: Categoria di spesa
Colonna 05: Colore categoria
Colonna 06: Descrizione categoria

Un’apposita macro permette, una volta assegnato il codice della categoria, di colorare automaticamente la cella “colore categoria” (05) e aggiornare la “descrizione categoria” (06) in modo automatico.
La prima riga contiene il valore attuale del conto, mentre alla fine di ogni mese tiro una riga per capire qual era lo status economico a fine mese.



Scheda 02: Carta prepagata. Come la Scheda 01.
Scheda 03: Soldi Cash. Come la Scheda 01.
Scheda 04: STATUS. In questa scheda c’è il riepilogo di tutte le spese, mese per mese. Lo scopo è avere, a colpo d’occhio, un’idea di come stanno andando le spese.



Scheda 05: Statistica 1. In questa scheda valuto la variazione di patrimonio mese per mese, calcolando il totale IN (introiti), il totale OUT (spese) e quindi l’eventuale accumulo. Si riporta anche il totale di spesa per ogni macrocategoria (vedi seguito)
Scheda 06: Statistica 2. In queste scheda (mai veramente completata, purtroppo) viene calcolata la media di spesa per ogni categoria dei mesi precedenti. In questo modo posso confrontare l’andamento del mese attuale con tutti i precedenti, e capire se c’è una categoria in cui sto “esagerando”

Scheda 07: Categorie. In questa scheda c’è l’elenco di tutte le categorie, inserite per riga. L’organizzazione per colonna prevede:
Colonna 01: codice categoria
Colonna 02: colore categoria
Colonna 03: nome categoria
Colonna 04: descrizione estesa della categoria

La macro della Scheda 01 cerca nella Colonna 01 il codice della categoria, e prende le informazioni necessarie per completare informazioni (5) e (6) della Scheda 01.

Nel porting su Access e sulla base dell’esperienza vorrei cambiare leggermente la struttura delle mie categoria (ad oggi hanno 3 cifre, ma adesso ne vorrei 4), e organizzarle in questo modo:

MACROCATEGORIE e CATEGORIE
  • 00 - Movimento Soldi (interno)
    • 0001: movimento da conto bancario a prepagata
    • 0002: movimento da conto bancario a cash
    • 0003: movimento da prepagata a conto bancario
    • 0004: movimento da prepagata a cash
    • 0005: movimento da cash a conto bancario
    • 0006: movimento da cash a prepagata
  • 01 - Introiti
    • 0101: Stipendio
    • 0102: pareggi
    • 0103: Altro
  • 02 - Spese
    • 0201: spese bancarie (bollo)
    • 0202: commissioni bancarie
    • 0203: tasse e imposte
    • 0204: multe
    • 0205: rate
  • 03 - Casa
  • 04 - Auto
  • 05 - Quotidianità
  • 06 - Tempo libero
  • 07 - Viaggi
  • 99 - Altro
Per semplicità ho riportato un esempio esteso solo per le prime tre categorie. La categoria 00 serve solo per contabilizzare movimento di soldi interno, e quindi non rappresenta delle vere e proprie spese.

IL DATABASE ACCESS
Come anticipato, vorrei spostare questa attività di contabilizzazione su un database Access.
Da circa una settimana sto lavorando a un database, cercando di volta in volta in rete come realizzare cosa avevo in testa. Questo metodo, però, è probabilmente limitativo perché non tiene conto del progetto nel suo insieme.

Provo a spiegare come vorrei organizzare il database:(https://dl.dropboxusercontent.com/u/45403015/_database_conti_economici_01.accdb)

Tabelle
tbl_Spese: tabella per conservare TUTTE le voci di spesa.
tbl_Conti: elenco di tutti i conti di riferimento (conto bancario, prepagata e cash, nel mio esempio)
tbl_Macrocategorie: elenco delle macrocategorie
tbl_Categorie: elenco delle categoria

Per semplicità, ho pensato di dividere il codice della categoria di spesa in Macrocategoria (prime due cifre) e categorie (ultime due cifre); quindi ho creato una relazione uno a molti tra le due tabelle, pensando di creare dei combobox collegati per la scelta della categoria dell’item.

Nella tabella tbl_Spese ho pensato di inserire i seguenti campi:
- ID (chiave primaria per la voce di spesa)
- Data
- Descrizione spesa
- Spesa (valuta)
- Conto (conto di riferimento della spesa)
- Macrocategoria (prime due cifre)
- Categoria (ultime due cifre)

A questo punto, ho provato a creare una maschera di input dei dati. Qui sono nati i primi problemi legati alle combobox collegate per la macrocategorie e le categorie. Per come ho costruito la maschera, quando modifico il campo di un item, si aggiornano tutti gli elementi della tabella

Per ricreare le schede di Excel con le analisi dei dati, se ho capito bene, devo creare delle query a campi incrociati (ancora non me le sono studiate, però).

CONCLUSIONE
Ho provato a spiegare da dove parto (il file Excel) e dove vorrei arrivare (il database Access).

Potreste dirmi cosa non va in questa organizzazione e cosa potrei migliorare?
Potreste indicarmi una tabella di marcia delle cose da fare per sviluppare correttamente in database?

Ogni suggerimento è più che ben accetto!
Grazie a tutti per il tempo dedicato al mio posto.
Petronio

7 Risposte

  • Re: Progettazione database conti economici (già in Excel)

    Premetto che lo scopo del forum non è quello di risolvere "tutto insieme" molti problemi. Nemmeno un "macroproblema" come quello che hai proposto.
    Partiamo da "IL DATABASE ACCESS" in poi. Mi pare di capire che per ora vuoi tracciare le Spese e la tbl_Spese sembra essere il cuore del tuo database. Non vedo tabelle che parlano di Clienti e molto altro ancora...non importa...per ora possiamo saltare.

    Ho dato un'occhiata ai valori della tbl_Macrocategorie:
    Movimenti soldi, Introiti, Spese, Casa, Auto, Quotidianità, Tempo libero, Viaggi, Altro.
    Cosa succede se una spesa riguarda più macrocategorie?
    La tabella Categorie non mostra valori "significativi" e ancor di più non si capisce a quale macrocategoria "potrebbe" appartenere ogni "categoria".
    Adesso non saprei come definire tutte le singole distinzioni e sottodistinzioni. Più in generale possiamo dire che una Spesa può appartenere a molte Categorie. Così come una Categoria può essere tracciata in molte Spese. Quindi sussiste la relazione tbl_Spese molti-a-molti tbl_Categorie da esplicitare con una tabella di congiunzione tbl_CategorieSpese avente almeno i seguenti campi:
    IDCS (ossia IDCategoriaSpesa)(chiave primaria)
    IDCategoria (chiave esterna)
    IDSpesa (chiave esterna)

    Relazioni:
    tbl_Spese.IDSpesa uno-a-molti tbl_CategorieSpese.IDSpesa
    tbl_Categorie.IDCategoria uno-a-molti tbl_CategorieSpese.IDCategoria

    Mi fermo qui per ora.
  • Re: Progettazione database conti economici (già in Excel)

    OsvaldoLaviosa, grazie mille per la tua risposta.

    OsvaldoLaviosa ha scritto:


    Premetto che lo scopo del forum non è quello di risolvere "tutto insieme" molti problemi. Nemmeno un "macroproblema" come quello che hai proposto.
    Partiamo da "IL DATABASE ACCESS" in poi.
    La mia intenzione non era quella di sottoporre un macro-problema, mi dispiace se invece è passata questa idea. Ho provato a spiegare cosa vorrei fare, mostrando il mio punto di partenza.
    La parte relativa al file Excel è lo strumento che uso attualmente; ho provato a spiegare come funziona perché è lo stesso risultato che vorrei ottenere con Access.

    OsvaldoLaviosa ha scritto:


    Partiamo da "IL DATABASE ACCESS" in poi. Mi pare di capire che per ora vuoi tracciare le Spese e la tbl_Spese sembra essere il cuore del tuo database. Non vedo tabelle che parlano di Clienti e molto altro ancora...non importa...per ora possiamo saltare.
    Lo scopo del database è tenere sotto controllo le mie spese, quindi io sono l'unico cliente; nelle mie intenzioni, lo sviluppo di questo database di controllo spese serve a farmi prendere confidenza con i db, cercare di carpirne i vantaggi e capire se ci sono delle situazioni lavorative in cui mi può tornare utile.

    E' esattamente come hai detto, tbl_Spese è il cuore del database, perché deve contenere tutti ti dati.

    OsvaldoLaviosa ha scritto:


    Ho dato un'occhiata ai valori della tbl_Macrocategorie:
    Movimenti soldi, Introiti, Spese, Casa, Auto, Quotidianità, Tempo libero, Viaggi, Altro.
    Cosa succede se una spesa riguarda più macrocategorie?
    La tabella Categorie non mostra valori "significativi" e ancor di più non si capisce a quale macrocategoria "potrebbe" appartenere ogni "categoria".
    Adesso non saprei come definire tutte le singole distinzioni e sottodistinzioni. Più in generale possiamo dire che una Spesa può appartenere a molte Categorie. Così come una Categoria può essere tracciata in molte Spese. Quindi sussiste la relazione tbl_Spese molti-a-molti tbl_Categorie da esplicitare con una tabella di congiunzione tbl_CategorieSpese avente almeno i seguenti campi:
    IDCS (ossia IDCategoriaSpesa)(chiave primaria)
    IDCategoria (chiave esterna)
    IDSpesa (chiave esterna)

    Relazioni:
    tbl_Spese.IDSpesa uno-a-molti tbl_CategorieSpese.IDSpesa
    tbl_Categorie.IDCategoria uno-a-molti tbl_CategorieSpese.IDCategoria

    Mi fermo qui per ora.
    Nelle mie intenzioni, ogni voce di spesa deve essere contabilizzata sotto un'unica categoria: per questo motivo ho stabilito una relazione uno-a-molti per le categorie (posso avere più categorie di spesa per una stessa macrocategoria di spesa - ad esempio: sotto la macrocategoria CASA, potrei avere Affitto, condominio, utenze, ecc). Questa, tuttavia, è una scelta. Al momento vorrei mantenerla, anche per cercare di restare fedele quanto più possibile all'approccio che ho seguito nell'ultimo anno per contabilizzare le mie spese.

    Spero di aver chiarito il mio punto di vista.

    Al fine di ricreare le stesse statistiche che già considero nel foglio Excel, devo impostare la tabelle tbl_Spese in modo diverso?
    Alla luce dei problemi di aggiornamento dei combobox, come mi conviene impostare le categorie?

    Grazie ancora per i suggerimenti e le osservazioni

    Petronio
  • Re: Progettazione database conti economici (già in Excel)

    Excel vs Access.
    Ti espongo una mia "molto personale" opinione. Noto che hai messo in moto molti "calcoli", poi anche "statistiche" ecc... Per come vedo io Access (o qualsiasi altra applicazione che tratta database), l'aspetto "calcolo" non è affatto il suo forte. Si può fare, ma con approcci/trucchi/stratagemmi da mettere in atto appositamente e per niente intuitivi (ciò che invece è la forza di Excel).
    Quello che c'è da fare in Access e innanzitutto trovare i punti di omogeneità dati da stivare dentro "tabelle". Più tabelle devono dialogare tra loro grazie alla "potenza/anima" delle relazioni. Queste sono tutte cose che avrai modo di studiare (ho notato in altro thread che hai intenzione di studiare Access dalle basi: OK).
    In Access, poi, ma molto poi, quando la mole di dati comincia a lievitare considerevolmente/significativamente, può essere opportuno fare "statistiche".
    Partire da tbl_Spese e co. può essere un buon inizio.

    petronio ha scritto:


    Nelle mie intenzioni, ogni voce di spesa deve essere contabilizzata sotto un'unica categoria: per questo motivo ho stabilito una relazione uno-a-molti per le categorie (posso avere più categorie di spesa per una stessa macrocategoria di spesa - ad esempio: sotto la macrocategoria CASA, potrei avere Affitto, condominio, utenze, ecc). Questa, tuttavia, è una scelta. Al momento vorrei mantenerla, anche per cercare di restare fedele quanto più possibile all'approccio che ho seguito nell'ultimo anno per contabilizzare le mie spese.
    Diciamo pure che non entro nel merito delle tue singole voci che vorrai contabilizzare. In linea generale devi prevedere una tabella Macrocategorie uno-a-molti Categorie. Poi Categorie uno-a-molti Spese.
    Abbi cura di avere sempre un campo chiave primaria avente il nome significativo IDMacrocategoria, IDCategoria, IDSpesa e fai lavorare sempre i campi ID per lo sfruttamento delle relazioni.

    petronio ha scritto:


    Alla luce dei problemi di aggiornamento dei combobox, come mi conviene impostare le categorie?
    Questo problema può essere osservato qui (riguarda strettamente Access e non la progattazione database)
    http://forum.masterdrive.it/access-79/controlli-bound-sincronizzati-in-cascata-45725/

    però mettilo in atto solo quando avrai le idee molto chiare sulla giusta organizzazione tabelle (la famosa NORMALIZZAZIONE).
  • Re: Progettazione database conti economici (già in Excel)

    OsvaldoLaviosa ha scritto:


    Excel vs Access.
    Ti espongo una mia "molto personale" opinione. Noto che hai messo in moto molti "calcoli", poi anche "statistiche" ecc... Per come vedo io Access (o qualsiasi altra applicazione che tratta database), l'aspetto "calcolo" non è affatto il suo forte. Si può fare, ma con approcci/trucchi/stratagemmi da mettere in atto appositamente e per niente intuitivi (ciò che invece è la forza di Excel).
    Osvaldo, non puoi confrontare pere con cocomeri.

    - Excel è un foglio elettronico.
    - Access un database.
    - MS Access è un ambiente di sviluppo.

    Fino a che non si prende atto che Excel NON E' un database, e che per questo non è confrontabile in alcun modo, si avrà sempre confusione nella testa.
    Come indicato anche da @ALex qui
    https://www.iprogrammatori.it/forum-programmazione/access/libri-access-consigliati-per-principianti-esperti-t13142.html#p8478398



    Consiglio lo studio di Access e MSAccess in modo profondo, non importa che uno lo usi per hobby o per professione, la programmazione è uguale per tutti e non ci si improvvisa né 'creatori' di database, né 'sviluppatori di applicazioni' dall'oggi al domani.
    Occorrono conoscenze profonde del mondo dei database (nulla a che vedere con Excel!).

    Propongo questi link molto utili:
    https://www.iprogrammatori.it/forum-programmazione/access/libri-access-consigliati-per-principianti-esperti-t13142.html#p8478390
    http://www.cerca-manuali.it/manuale-guida/access.ht

  • Re: Progettazione database conti economici (già in Excel)

    OsvaldoLaviosa ha scritto:


    Excel vs Access.
    Ti espongo una mia "molto personale" opinione. Noto che hai messo in moto molti "calcoli", poi anche "statistiche" ecc... Per come vedo io Access (o qualsiasi altra applicazione che tratta database), l'aspetto "calcolo" non è affatto il suo forte. Si può fare, ma con approcci/trucchi/stratagemmi da mettere in atto appositamente e per niente intuitivi (ciò che invece è la forza di Excel).
    Esiste la possibilità di conservare i dati in Access e poi eseguire statistiche e calcoli con Excel?

    OsvaldoLaviosa ha scritto:



    Questo problema può essere osservato qui (riguarda strettamente Access e non la progattazione database)
    http://forum.masterdrive.it/access-79/controlli-bound-sincronizzati-in-cascata-45725/

    però mettilo in atto solo quando avrai le idee molto chiare sulla giusta organizzazione tabelle (la famosa NORMALIZZAZIONE).

    gibra ha scritto:


    Consiglio lo studio di Access e MSAccess in modo profondo, non importa che uno lo usi per hobby o per professione, la programmazione è uguale per tutti e non ci si improvvisa né 'creatori' di database, né 'sviluppatori di applicazioni' dall'oggi al domani.
    Occorrono conoscenze profonde del mondo dei database (nulla a che vedere con Excel!).

    Propongo questi link molto utili:
    https://www.iprogrammatori.it/forum-programmazione/access/libri-access-consigliati-per-principianti-esperti-t13142.html#p8478390
    http://www.cerca-manuali.it/manuale-guida/access.ht
    Grazie a entrambi per le dritte, OsvaldoLaviosa e gibra: adesso guardo l'esempio e i link che mi avete girato
    Sicuramente ho molto da imparare
  • Re: Progettazione database conti economici (già in Excel)

    petronio ha scritto:


    Esiste la possibilità di conservare i dati in Access e poi eseguire statistiche e calcoli con Excel?
    Sinceramente questo è l'aspetto che meno amo di Access. Quello che sento di dire è innanzitutto cerca di stivare moltissimi dati in Access. Se preferisci puoi sempre esportare tabelle e query da Access in Excel, quindi lavorare in Excel in seconda battuta. In Access i calcoli si possono fare ma sono meno intuitivi. Le statistiche "dipende". Una cosa che ricordo diceva @Alex in alcuni thread passati è che, a proposito di GRAFICI, lui preferisce usare più comodamente Excel...nonostante il motore logico sia equivalente...ma ripeto, tocchiamo tasti in cui mi sento poco competente.
  • Re: Progettazione database conti economici (già in Excel)

    petronio ha scritto:


    Esiste la possibilità di conservare i dati in Access e poi eseguire statistiche e calcoli con Excel?
    Personalmente, gestisco tutto quello che serve come manipolazione dati per l'utente in Access, e per quanto riguarda la parte GRAFICI/STATISTICHE ecc... mi preparo un TEMPLATE in Excel con tutto, Foglio Dati con Calcoli e tutto quanto destinato alla Grafica Excel, riferimenti e Grafici(in Sheet indipendenti).
    Lo SVUOTO, lo salvo in file TEMPLATE(XLTS).
    Con Access creo la mia Fonte dati all'occorrenza, la scrivo nella sezione del Foglio dati del Template che ho Predisposto che poi SalvoConNome, stampo in PDF tutte le pagine che servono e lo apro.

    L'utente vede solo il PDF...
Devi accedere o registrarti per scrivere nel forum
7 risposte