Citat:
Jeste, ali tako odstupa od pravila normalizacije i odmah u početku uči naopako - kako ne treba raditi. Osnovno pravilo je da jedan isti podatak ne sme da se ponavlja i unosi više puta. Nije stvar do veličine baze, one su odavno mnooogo manje nego što staje na disk.
Mislim da ovo sto kaze Banem ne stoji. Cena u tabeli artikli se menja, a cena u atbeli ProdatiArtikli NE SME da se menja. Prema tome to su dva razlicita podatka po svojoj prirodi i moraju da se tretiraju razlicito. Ono sto zbunjuje ljude jeste nacin generisanja cene u tabeli ProdatiArtikli. Generalno, vrednost ProdataRoba.Cena se dobija kopiranjem vrednosti Artikli.Cena. To je jedini trenutak kad su ta dva podatka ista. Cena u tabeli Artikli moze se promeniti u bilo kom momentu, ali to nece i ne sme da utice na zapis u tabeli ProdataRoba.
Kako izbeci KUCANJE cene svaki put kad se proda roba? Upotrebite AfrerUpdate event za kontrolu ArtiklID. Verovatno imate formu u koju se unose prodati artikli. Cesto je ovo subforma na nekoj glavnoj formi. Verovatno imate combob box iz koga birate artikle. Taj kombo box ima ima dataSource=ProdataRoba.ArtiklID, a source za pop-down listu je nesto kao "SELECT ArtiklID,Opis,Cena FROM Artikli". Takodje imate polje na formi(subformi) gde se cuva ProdataRoba.Cena. Treba na AfterUpdate za combo box staviti otprilike ovakav kod:
sub cboArtklID_AfterUpdate()
me!Cena=me.cboArtiklID.Column(2)
end sub
I to je sve. Izaberete robu => cena se prepise iz tabele Artikli. Onda mozete da je promenite ako hocete. Uglavnom se ova promena nece desiti, osim ako ne odlucite da judima date popust iz nekog razloga, ili im povecate cenu iz nekog razloga.
Kod koji sam dao je samo ideja, kucao sam direktno u poruku, pa nemojte da Cut/Paste, probajte sami na vasem slucaju.