OK, sad je malo bolje
Imas dakle 30 gradova (= 30 okacija) i svaka lokacija ima neke objekte (rezervoar, pumpa, cevovod).
Za svaku lokaciju i svaki objekat treba ti slika.
Da li je broj objekata po lokaciji fiksan i da li ce ostati fiksan?
Da li broj slika po objektu ostaje fiksan (jedna slika po objektu) ili moze vise?
Ja bih ovo uradio celo u Accessu, slike i sve ostalo. Znaci, predlazem da se slike cuvaju u Access bazi (ili MS SQL, ili neki drugi sistem svejedno)
Sigurnije je, a za ovako ozbiljnu stvar prostor na disku ne sme biti problem. Ako slike cuvas u bazi, pomeranjem sa rekorda na rekord slika je odmah tu, nema sta da se klikne i juri po disku, jednostavno, tu je. Ako slike cuvas na disku, za ovoliki broj slika trebace jako mudra naming convention da bi znao sta je sta. Pa treba da cuvas path za svaku sliku u posebnom polju, koje treba da napunis, a za to ti treba OpenFile dialog, koji mozda radi a mzoda i ne. pa ti onda neko promeni ili pomeri sliku i onda si u problemima. Access veoma uspesno moze da cuva slike u tabelama, svaka slika moze da potice od razlicitog programa. Mogu se cuvati i drugio dokumenti, nesamo slike. Word, Excel, AutoCAD, PDF, PowerPoint, Visio, MS Project pa cak i druge MS Access baze (baza u bazi, zvuci blesavo ali moze ako treba)
Obavezno idi na odvajanje aplikacije od podataka i radi sa linkovanim tabelama. Ako imas masu drugigh podataka za cuvanje i mislis da ce sliek smetati u tabeli, odvoji slike u jednu bazu, radne podatke u drugu pa ih obe linkuj na aplikaciju. I nikad ne izvrsi kveri
Code:
SELECT * FROM tabelaSaSikama
Slike ionako ne vidis u kveriju, ali ce ih * svejedno povuci. Pazi na takve sitne gluposti i bices OK.
Bazu mozes da koncipiras na dva nacina.
Nacin 1, svi objekti za jedanu lokaciju u istoj tabeli, jedna jedina tabela:
tblObjektiISlike:
(
Lokacija tex (PK)
SlikaLokacije (OLE)
SlikaRezervoara (OLE)
SlikaDispenzera(OLE)
SlikaPumpe(OLE)
)
Za ovakvu konfiguraciju, potrebna ti je master forma na kojo su sva polja => sve slike. Da lsike ne bi bile male, stavis svaku na poseban TAB. Prvi TAB je slika same lokacije (gradovi). Kilkom na odgovarajuci TAB dobijas zeljenu sliku. prosto ko pasulj
Onda napravis unbound formu na kojoj je kombo box sa imenima gradova (lokacija). Klik na kombo box otvara master formu (DocMd.OpenForm.... WHERE "LOkacija=' & me!cboMTvojKomboBox)
Nacin 2:
Dve tabele, tblLokacija i tblSlike, ovako:
tblLOkacija
(Lokacija PK, text
, SlikaLOkacije OLE
)
tblObjektiSlike
(Lokacija, text FK na tblLokacija
, Objekat, text
, StajeNaSlici, text
, SLika OLE
) PK (Lokacija, Objekt, StaJeNaSlici)
Sada mozes po jednoj lokaciji da imas vise objekata i za svaki objekat vise slika. Mozes da razbijes i tblObjektiSlike na tblObjekti i tblSlike.
Sada master forma (koju pozivamo pomocu kombo boxa, kao u slucaju 1) ima samo jednu sliku - sliku objekta. I ima subformu, vezanu za master formu (bound subform), koja je CONTINIOUS FORM. a izgleda kao datsheet. Subforma se bazira na tblObjektiSlike. kad otvoris master formu za neku lokaciju, subforma je automatski povesana za tu lokaciju, polje Lokacija na subformi en mora ni da se vidi. NA subformi imas dugme za otvaranjejos pop-up formice, koja na sebi ima Lokacija, Objekt, StaJeNaSlici i sliku objekta - bound OLE polje tblObjektiSlike.Slika. Sa subforme pozivas pop-up formu sa slikom izabranog objekta.
Umesto kombo boxa za pretrazivanje, mozes da koristis daatsheet, pa master formu pozivas dvoklikom. Pre nekoliko meseci imao si slicno pitanje i objasnio sam ti metod upotrebe datasheeta za pretrazivanje. izgledalo je kao da ti se tada metod dopao
Evo te teme:
http://www.elitesecurity.org/t164425-0#1081977
Upotrebu vezanih (bound) OLE polja Getsbi je veoma lepo pokazao u primeru koji je zakacio.
Eto sad imas sve, pa biraj. Licno bih izabrao drugu opciju. Kad ti poslodavac vidi slike, trazice jos slika. opcoja 2 ti omogucuje da to uradis bez dodatnog programiranja ili ne daj boze izmene strukture tabela.