Pretpostavimo da imamo bazu podataka koja sadrลพi tabele Klijent i Narudลพbe. Pretpostavimo i to da imamo formu na kojoj treba omoguฤiti korisnicima da mogu preko jednog combo-boxa da izaberu naziv klijenta, dok ฤe se u isto vreme preko drugog combo-boxa omoguฤiti da se izabere odreฤena narudลพba datog klijenta. Ovo implicira da ova dva combo-boxa moraju biti u relaciji i da promena prvog utiฤe na izmenu sadrลพaja drugog. Kako ovo izvesti?
Da biste postigli ovaj cilj, trebalo bi da combo-box tabele Narudลพbi zasnujete na upitu koji pronalazi sve slogove (redove u tabeli ) Narudลพbe sa vrednoลกฤu koja je definisana u combo-boxu Klijent. Potom ฤete morati da dodate programski kod odgovarajuฤoj kontroli (combo-boxu) na formi vezano za odreฤeni dogaฤaj (izmena vrednosti) da biste Accessu „kazali“ da izvrลกi ponovni upit (requery) u tabeli Narudลพbe, kad god se desi promena u Klijent combo-boxu.
Preduzmite sledeฤe korake: prvo, promenite osobinu Name kontrole combo-box vezanu za klijenta u cboSifKlijenta (ลกifra klijenta) i isto to uradite za combo-box Narudลพbi – preimenujte naziv kontrole u cboSifNarudzbe. Ovim ฤete bolje identifikovati combo-boxove i eliminisati probleme sa nazivima.
Sledeฤe, podesite osobinu Row Source combo-boxa Narudลพbi tako da ukazuje na SQL upit kojim se ekstrahuju slogovi na osnovu ลกifre klijenta, iz combo-boxa Klijenta. Da biste ovo odradili, kliknite na osobinu Row Source, a potom na dugme za izgradnju upita. U Query Builderu izaberite kolone (polja tabele) iz tabele Narudลพbe koje ฤe se koristiti u combo-boxu, kao ลกto su SifNarudzbe, Datum i tako dalje, ukljuฤujuฤi obavezno i polje SifKlijenta (ลกifra klijenta). Zatim, u koloni SifKlijenta unesite [cboSifKlijenta] u polje kriterijuma (Criteria). Ovo Accessu ukazuje da ograniฤi rezultate upita na samo one slogove koji imaju istu vrednost kao trenutno selektovana u Klijent combo-boxu. Ovo pretpostavlja da je Klijent combo-box ograniฤen (bound column) kolonom SifKlijenta.
Kada zatim zatvorite Query Builder, Access ฤe ubaciti SQL naredbu unutar osobine Row Source (izvor podataka), te u SQL naredbu ukljuฤiti Where klauzulu, neลกto sliฤno ovome:
WHERE (((Narudzbe.SifKlijenta) =
[cboSifKlijenta]))
Ovo ฤe ograniฤiti broj slogova koji ฤe se prikazati unutar ove kontrole.
Sada je potrebno da uฤinite da se svaki put kada se promeni vrednost unutar Klijent combo-boxa, automatski izvrลกi update combo-boxa Narudลพbi. Da biste ovo dobili, ubacite sledeฤi programski kod unutar dogaฤaja AfterUpdate combo-boxa vezanog za Klijenta:
Me![cboSifNarudzbe].Requery
Ova linija koda kazuje Accessu da obnovi sadrลพaj combo-boxa vezanog za Narudลพbe svaki put kada se dogodi dogaฤaj AfterUpdate kontrole combo-box Klijenta.
Pratite Krstaricu na www.krstarica.com