1. diel - Osobné financie v MS Access - Zámer
V úvodnej časti dnešnej lekcie si ukážeme, ako sa uvažuje nad databázovú úlohou, teda akési táraniu, ktoré je ale je mnohokrát účinnejší, než napísať desiatky strán kódu, ktorý je následne potrebné opraviť, škrtať, prepisovať a nakoniec zahodiť. V ďalšej časti sa budeme venovať návrhu úlohy a dátových štruktúr.
Opis zámeru úlohy
Rodinné financie nie sú len tanečky okolo peňaženky každého člena rodiny alebo hrubého výpisu z bankového účtu, nie sú to len priame príjmy a výdavky podobné účtovníctva. Ak naozaj chceme mať vládu nad hospodárením domácnosti, ktorá má farebnejší obrat peňazí, než ako som počul nedávno u kasy vo velkokšeftě, kde volal Jano na kamaráta: "Fero, ber enom najnutnejšie, prachy pridať v stredu," musíme tomu venovať úsilie v rozvrhu projektu, presnosť pri zostavení úlohy a precíznosť pri zadávaní dát.
Pokiaľ hovoríme o financiách, všetky peniaze prejdú hotovostným alebo bankovým obratom, na tom sa asi všetci zhodneme. K bežným agendám patrí, odkiaľ peniaze prišli a kam ich vydávame, ďalej tiež sledovanie, za akým účelom. Niekedy ich delíme na úspory a spotrebu, inokedy podľa osôb v domácnosti. Rozšírime Ak pojem financie na ekonomiku, sú tu aj investície iné, než finančné alebo do detí - niekto bude obchodovať s akciami, môže byť záujem o rozšírenie na hmotné jednotky, ak napríklad máme záhradu s väčšou rozlohou a tá nám pomáha v rodinnom hospodárenia. Tiež otázka mien a ich prevodu môže byť silným pilierom nášho snaženia. Z rozsahu záberu, ktorý chceme pojať do projektu a hlavne, ktorý sme v budúcnosti schopní plniť dátami a využívať, si stanovíme hranice systému.
Dôležité je si uvedomiť, že nevytvárame podvojné účtovníctvo alebo buzerační systém, ale staviame si pomocníka, ktorého sklad budeme roky plniť a využívať.
Tu sme vedení obmedzenými stupňami voľnosti z hľadiska priestoru a času, ale aj väzbami na výukové lekcie, ku ktorým by táto realizácia mala smerovať.
Základný popis úlohy
Po definíciu ohraničenie a koncepcie začneme požiadavky na výslednej funkcie, pre niekoho možno nelogicky. Podobne ako barák sa síce stavia od základov, ale v tom čase už musíte vedieť, koľko bude poschodí a ako to všetko bude ťažké a kde bude ťažisko, inak sa stavia základy k hviezdnym bránam.
Definícia systému
Stanovíme si hranice systému, aby sme neskôr netápali mimo rámca, ktorým si obmedzíme naše fantázie a sny na reálnu mieru tak, že je možné dosiahnuť a dlhodobo udržiavať. Ďalej musíme mať na mysli, že ide o školskú príklad. Pôjde teda o mnohé zjednodušenia.
Ja tu definujú dvojčlennú rodinu, jednu hotovostné peňaženku a jeden bankový účet. Pre praktické použitie si môžete počty týchto zdrojov ľubovoľne zvýšiť. Predpokladám, že hypotekárny úver možno ľahko previesť a importovať na rovnakej úrovni, ako bežný účet bankový.
Koncepcia úlohy
Centrom dát bude tabuľka jednotnej štruktúry o finančných pohyboch. Táto tabuľka bude vo vzťahu k užívateľovi len na čítanie. V rovnakej dátovej štruktúre budeme obstarávať dáta o hotovostných obratoch dávkovým spôsobom a na trvalú tabuľku ich ukladať. Prijaté dáta z bankových účtov budeme transformovať tiež do tejto centrálnej štruktúry, tam budú skontrolovaná a pred ich uložením je doplníme hodnotami o osobách a účeloch. Kompletné dáta z banky nezahodíte, ale budeme ich archivovať.
Dátové štruktúry vyplynú z ďalšej analýzy úlohy. Dôležitý je kalendár a jeho sledovanie, ale vzhľadom k úzkym väzbám na bankové účty dávam ako sledované obdobie jeden mesiac, banky zatiaľ asi inú závierku nevie.
Definície funkcií
- hotovosť (obstaranie a oprava dát)
- bankové účty (import dát, transformácia na jednotnú štruktúru, doplnenie typov pohybov a osôb, pohľad na detaily a súčty)
- archivácia úplných importovaných dát a prístup k nim (v praxi použijeme jenom malú časť)
- hľadanie v uložených dátach
- bilancie príjmov a výdavkov v hrubom alebo podrobnom členení
- základný informačný panel
Spôsob uvažovania nad funkciami
Aby som priblížil, ako je dôležité mať rozmyslené, čo chceme dosiahnuť, vezmem prvý definovanú funkciu Hotovosť a rozoberiem ju z pohľadu očakávaných akcií.
Treba si ale jasne povedať, že ide o uvažovanie individuálne, každý z nás môže mať iný pohľad na problém a iné požiadavky.
Niekomu postačí holé formuláre a súčty, iný bude chcieť škálu sprievodných funkcií.
Detailné funkcie
- obstaranie dát
- vyhľadávanie v dátach
- súčtovania pohľady do dát
Ďalšie špecifikácie detailu
Tiež tu bude možno škála rozsahu práce, teda v tomto štádiu skôr počet a kvalita plánovaných funkcií, teda široká. Funkcia okrem obstaranie budú spoločné pre všetky záznamy, teda aj banku. Ako príklad uvediem prvý detailný funkciu Obstaranie dát. Opomenieme minimalistický prístup ako zobrazenie tabuľky peňažného denníka v dátovej tabuľke.
Stredné požiadavky na obstaranie dát
- pri spustení funkcie získavanie dát zobraziť správu, aké je posledná nasnímané dátum a vložená čiastka.
- zobrazenie tabuľky peňažného denníka v dátovej tabuľke
- na konci nahrávania údajov opäť zobraziť správu, aký je súčet hodnôt dnes zhotovených záznamov a ich počet
- v prípade nesúhlasu sa súčty možnosť vrátiť sa na zaznamenávanie údajov
Dátové štruktúry
Pre vytvorenie dátových tabuliek nemusíme študovať právne predpisy ani čakať na vyjadrenie zadávateľa. Všetko je v našej hlave, záleží na skúsenostiach a fantáziu. Tu položíme jednoduchý základ, ktorý môžeme prípadne ďalej upravovať, ale pokúsime sa byť čo najpresnejšie. Nebudeme sa tu zaoberať metódami návrhu databáz a dátových štruktúr. Základom je zistiť, kam plynú peniaze z našich účtov az peňaženky, alebo nájsť niekoľko rokov starý záznam. Pre identifikáciu osoby, účelu a zdroje pohybu vytvoríme číselníky. Pre vyhľadávanie a uchovanie potrebných pracovných premenných si vytvoríme parametrickú tabuľku.
Financie - centrálny dátová štruktúra
Pole: / ID / Dátum / Zdroj / Osoba / Ucel / čiastka / Poznamka /
Číselníky
Zdroj
Označenie, odkiaľ sa obrat do tabuľky dostal. Aby sme nemuseli robiť ďalšie číselník pre banky, sú tu polia potrebné pre kontrolu importov ,, ktorá u hotovosti nevyužijeme.
Pole: / Zdroj / IBAN / Ucet / Banka / Nazov / UzaverkaDatum / UzaverkaStav / ImportSoubor / Poznamka /
Hodnoty poľa Zdroj:
f
- banka Fio (prípadné ďalšie písmená použijem u iných bankových účtov)h
- hotovosť (možné hodnoty sú aj1
a2
pre kasu jedného a druhého člena rodiny atď.)
Osoba
Pole: / Titul / Jmeno / Prijmeni / Adresa / Telefón / Poznamka /
Titul v zmysle prezývka
Hodnoty poľa Titul:
- ja
- tie
- oba
Účel
Zdržím sa u tejto položky komentárom. V každom väčšom systéme by som radšej volil dva číselníky, teda Typ a Účel, kde Typ by bol nadradený, napr. Auto, dom, domácnosť a účel by bol definovaný len raz, napr. Spotreba by bola jedna pre auto, dom i pre domácnosť. Podobných drobností sú ale desiatky, systém napučí a stáva sa zložitým na získavanie dát aj ako školský príklad. Preto tu máme účel len jeden a číselník s dvoma pozíciami, prvý k typu, druhá k jeho podrobnostiam.
Pole: / Ucel (!! Textové pole) / Nazov / Poznamka /
Hodnoty poľa Ucel:
0
- Príjmy01
- Mzda02
- Iný príjem09
- Ostatné1
- Domácnosť11
- Potraviny a jedlo12
- Chlast13
- Energia14
- Údržba19
- Ostatné2
- Auto21
- Opravy22
- Poistenie23
- Spotreba29
- Ostatné
Možno sa táto lekcia programátorom alebo netrpezlivým riešiteľom zdá ako plané kecania, ale z mojej štyridsaťročnej praxe je tento čas, kedy len spisuje funkcie, zaraďujem, škrtám, dopĺňam, sčítajú, rozčleňuje a zase hromadíte nové, jedným z najlepšie využitých, aj keď sa to spozná až v priebehu práce.
Tým sa končí prvá lekcia.
V budúcej, Osobné financie v MS Access - Dátové tabuľky , už budeme pracovať s databázou.