Srećem interesantne kobinacije tehnologija: radio sam u firmi koja u Javi razvija software za MSSQL, onda sretnem kolegu iz druge firme koji u .Net-u radi za Oracle backend. Ipak, mislim da si šampion sa MS Access/MySQL kombinacijom. Ako uspeš, bićeš heroj ulice i dobićeš, kao nagradu, kaladont. ;)
1. ODBC nije dobar način za povezivanje. I u .Net i u Java svetu postoje mnogo bolja rešenja. Uzgred, kad budeš pravio tabele u MySQL-u, vodi računa o limitu naziva tabele/view-a pod ODBC-om.
2. MS Access ili ne? Ne, naravno. MS Access je odličan za prototipove. Full stop. Ako želiš snagu pravog programskog okruženja, uzmi VB.NET, C# ili Javu.
3. Ako već moraš da koristiš MS Access, onda je prirodno da se na backend-u nalazi nešto od MS-a, na primer, MS SQL Express - free, sa sasvim prihvatljivim limitima za za poslovne aplikacije (1 CPU/1GB RAM). Baza u 2 fajla, možeš da je copy/paste pa na rame, kad kreneš na put.
4. Kod subformi, uobičajeno je da imaš filter (dropdown, combo, text box, etc) sa jednim push button-om. Popuniš filter, stisneš dugme i forma/subforma učitaju podatke iz stored procedure ili čistog SQL-a. Na primer, ako imaš fizičko lice i uplate, filter je JMBG a subforma učitava podake iz stored procedure tek kad se filter popuni (combo box+ push button).
5. Pogledaj LINKED tabele u MS Accessu - vrlo zgodno za vezivanje. Tabele vidiš u Access-u kao da su "native". I upite onda praviš u MS Access-u.
6. Nikad ne pravi formu koja za data source ima "select ... where ..." već napravi stored procedure/view-ove.
7. Kad smo kod view-ova, oni su odlični za nasleđivanje (ako praviš objekte), jer omogućavaju i projekciju i restrikciju nad baznim objektom (tabelom). Na primer, u istoj tabeli se nalaze svi predmeti ali, ima kolona "PREDMET_ARHIVIRAN" tipa BOOLEAN/BIT. Onda napraviš dva view-a: jedan za predmete u radu a drugi za arhivirane predmete, na primer, SELECT * FROM PREDMET WHERE PREDMET.ARHIVIRAN=1 (View ima fixnu WHERE clausulu, sa const parametrima) Naravno, GUI mora da podržava switchovanje između viewova, u ovom slučaju jedan check box je dovoljan. Ili, ako imaš predmete podeljene po upisnicima, napravi po jedan view za svaki upisnik (P, K, Ki, Kv, etc). To je ok, jer se upisnici ne menjaju.
Da rezimiram, ako učiš Access, batali MySQL. Ako su ti zacrtali MySQL na backendu, traži drugi alat za front-end.
Acta, non verba!