Pocetnik sam sa Accessom i bazama uopste, pa sam resio da kroz neki konkretan projekat naucim ponesto i o jednom i o drugom (da ostavimo sada po strani komentare da bi neki drugi DBMS mozda bolje posluzio za ucenje baza uopste :).
Ideja koju sam resio da realizujem je potekla od kolege koji radi kao HR manager u jednoj kompaniji. Zadatak se sastoji u sledecem: napraviti Access bazu u kojoj ce se cuvati podaci o dodatnim edukacijama zaposlenih koje placa kompanija - kursevi, usavrsavanja, team buldings, itd. Baza takodje treba da omoguci kreiranje izvestaja po prakticno svim podacima koji su u njoj: po zaposlenima, po odeljenjima u kojima rade, po kompanijama tj. pravnim licima (posto se cela firma sastoji od nekoliko pravnih lica), po vremenskim periodima, po cenama...
U prilogu je moj dizajn baze - tabele i relationships. Trudio sam se, to the best of my knowledge & abilities, da taj dizajn odradim kako treba, ali su misljenja iskusnijih itekako pozeljna.

Najveci problem mi je u samom dizajnu modela pravio zahtev da se cene mogu unositi u dinarima i u evrima, i da izvestaji moraju biti u stanju da prikazu troskove i u dinarima i u evrima. Najjednostavnije resenje bi, naravno, bilo da u tabelu Edukacije idu i cena u dinarima i cena u evrima, ali to bi bilo u suprotnosti sa 1. NF (ako sam dobro zapamtio ;), pa sam stoga odlucio da u bazu idu samo minimalni podaci iz kojih se mogu rekonstruisati i jedna i druga cena, dakle: iznos, valuta i kurs evra. Izvestaji ce sami racunati "onu drugu" cenu, koja god da je. Interesuje me, konkretno ovde, da li sam dobro postupio i da li mozda postoji jednostavnije ili cisto pametnije resenje.
Sto se same realizacije baze tice, zamislio sam da se pri otvaranju baze otvara jedan Form, kao nekakav "main switchboard", sa cetiri osnovne opcije:
1) Unos/izmena podataka o edukacijama;
2) Unos/izmena podataka o radnicima;
3) Kreiranje izvestaja;
4) Unos/izmena podataka o organizacionoj strukturi kompanije.
Svaka od ovih opcija otvara novi form, koji "radi posao". E tu sam se susreo i sa prvim konkretnim problemom:
Zamislio sam da se na formi za unos/izmenu podataka o edukaciji izbor kategorije radi pomocu Combo Boxa iz kojeg ce se prosto izabrati kategorija. Problem je sto sam vezu izmedju tabela Edukacija i Kategorije izveo preko polja Kategorija_ID. Moje pitanje: kako izvesti da korisnik iz Combo Boxa bira naziv kategorije koji odgovara odredjenom Kategorija_ID a ne neki kripticni AutoNumber broj koji mu nista ne znaci?
Moja ideja resenja (koja ne radi ;) izgleda ovako: za Control Source tog Combo Boxa je postavljeno "ID_Kategorija", Row Source Type je "Table/Query", a Row Source je:
SELECT Kategorije.ID, Kategorije.Naziv FROM Kategorije;
To, naravno, prikazuje samo "kripticni AutoNumber" ID iz tabele Kategorije, ali ne i polje Naziv iz iste tabele. Svaka druga varijanta (prvo Kategorije.Naziv pa ID, ili samo Naziv), logicno, ne prolazi zbog type mismatch polja. Kako srediti to?
Unapred hvala svima koji pomognu, i ocekujte jos pitanja i poTpitanja, pogotovo kad krenem u izradu queryja za izvestaje. :)))
Pozdrav