Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Tri razna problema

[es] :: Access :: Tri razna problema

[ Pregleda: 2597 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darkog
Obrenovac

Član broj: 82291
Poruke: 147
*.beogrid.net.



+1 Profil

icon Tri razna problema13.02.2006. u 12:09 - pre 220 meseci
Pozdrav,

1. Dakle, kako da kada odaberem proizvod za otpremu sam ucita jedinicu mere koju ovaj proizvod ima, dakle ako se proizvod prodaje na komad ucitava "kom" ili ako je jedinica mere L (litar) ucitava "L".Jedinica mere je atribut tabele proizvodi i za neke proizvode je "kom", za neke "L".Treba li to da se radi pomocu VBA coda ili kako...???

2. Trebam neki upit koji upozorava korisnika da klijentovom vozilu istice registracija za npr. 10 dana (kao upozorenje).Datum prve registracije 20/1/2000. tako bi za sledecu godinu 10/1/2001. trebao da upozorava.Dakle godina nije bitna (jer se uvecava) vec samo dan i mesec.Mozda upit koji koristu f-ju koja bi ovo odradila bez gresaka.

3. Hocu na obrascu da prikazuje podatke o vozilu (tblVozila) i ime klijenta koji ga vozi (tblKlijenti).E sad sve klijente sa stavio u jednu tabelu (tblKlijenti), dakle fizicka i pravna lica.Fiz lica imaju "ime" i "prezime", a pravna "naziv_firme". Nisam hteo da razdvajam u dve tabele fiz. i pravna lica jer se isto tretiraju.Znaci, za fiz. lice polje naziv_firme je null. Zakljucak: dali postoji neka funkcija ili upit koja ako je polje naziv_firme is null, prikazuje u obrascu ime i prezime kao vlasnika, a ako je:
naziv_firme is not null, prikazuje u obrascu naziv firme kao vlasnika.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Tri razna problema13.02.2006. u 14:51 - pre 220 meseci
Citat:
1. Dakle, kako da kada odaberem proizvod za otpremu sam ucita jedinicu mere koju ovaj proizvod ima, dakle ako se proizvod prodaje na komad ucitava "kom" ili ako je jedinica mere L (litar) ucitava "L".Jedinica mere je atribut tabele proizvodi i za neke proizvode je "kom", za neke "L".Treba li to da se radi pomocu VBA coda ili kako...???

Odgovor: nemoj uopste da ucitavas jdinicu mere kad odaberes proizvod. kako sam kazes, "Jedinica mere je atribut tabele proizvodi ....". Tacno tako, i tu treba i da ostane. Gde bi se to ucitala jedinica mere na neko drugo mesto? U tabelu DetaljiOtpreme? Ni slucajno. Ako zelis da se na nekom dokumentu vidi jedinica mere za artikle na otpremnici, napravi kveri koji ima JOIN izmedju tabela DetaljiOtpremnice i tabele Roba. Pogledaj teme Magacin i Maloprodaja robe i Kafic, tamo imas mnogo o slicnim situacijama.

[Quote]2. Trebam neki upit koji upozorava korisnika da klijentovom vozilu istice registracija za npr. 10 dana (kao upozorenje).Datum prve registracije 20/1/2000. tako bi za sledecu godinu 10/1/2001. trebao da upozorava.Dakle godina nije bitna (jer se uvecava) vec samo dan i mesec.Mozda upit koji koristu f-ju koja bi ovo odradila bez gresaka.[Quote]
Odgovor: ne treba ti funkcija. Ti zelis da se pokaze upozorenje deset dana pre isticanja registracije. Znaci, treba da razlika izmedju tekuceg datuma i datume registracije bude 355 dana ili veca. probaj ovako:

SELECT * FROM tblVozila WHERE (Date()-DatumRegistracije)>=355

Predpostavka je da je DatumRegistracije datum kad je poslednji put vozilo bilo registrovano, prosle godine.

Citat:
3. Hocu na obrascu da prikazuje podatke o vozilu (tblVozila) i ime klijenta koji ga vozi (tblKlijenti).E sad sve klijente sa stavio u jednu tabelu (tblKlijenti), dakle fizicka i pravna lica.Fiz lica imaju "ime" i "prezime", a pravna "naziv_firme". Nisam hteo da razdvajam u dve tabele fiz. i pravna lica jer se isto tretiraju.Znaci, za fiz. lice polje naziv_firme je null. Zakljucak: dali postoji neka funkcija ili upit koja ako je polje naziv_firme is null, prikazuje u obrascu ime i prezime kao vlasnika, a ako je:
naziv_firme is not null, prikazuje u obrascu naziv firme kao vlasnika.


Moze da se uradi, funkcijom IIF i ISNULL, vidi zakacen primer. Medjutim, tu imas ozbiljan problem u dizajnu tabele. U zelejenom kveriju, sta zelis da pokazes? Ako je firma, naziv firem (jedna kolona). Ako je fizicko lice, imas Ime i Prezime (dve kolone). Da li zelis u jednom slucaju da se pokaze jedno polje, a u drugom slucaju dva polja? Tesko, jer za bilo koji kveri mora da se definise jedinstven broj kolona. Ako zelis da spojis Ima i Prezime ficickog lica u jednu kolonu, to vec moze, ovako:
Code:
SELECT IIF(ISNULL([Naziv_Firme]),[Ime] & " " [prezime], [Naziv_Firme]) AS Ime Klijenta FROM tblKlijenti
Cim moras da radis ovakve akrobacije, to ti je siguran znak da nesto u dizajnu tabele ne valja. Recimo da usvojis resenje sa spajanjem imena i prezimena u jednu kolonu. Koji bi bio naziv te kolone u kveriju? Osim razlike u zapisivanju imena, mora biti da postoje i druge razlike izmedju fizickog i pravnog lica. Ovo govori da bi ih trebalo odvojiti u razlicite tabele.

Ako si pocetnik, da se zaustavimo ovde, zanemari primedbu o losem dizajnu tabele i zadovolji se time da si se susreo sa dosad nepoznatim funkcijama ISNull i IIF i ponesto naucio od aritmetici sa datumima. Kasnije pokusaj da proucis nauku o modelovanju podataka, jer ako radis sa losim primerima krajnji rezulat ucenja bice los.

Srecan rad
 
Odgovor na temu

tabi
BGD

Član broj: 81691
Poruke: 33
*.dial.InfoSky.Net.



Profil

icon Re: Tri razna problema13.02.2006. u 20:17 - pre 220 meseci
Generalno cini mi se da od zahteva projekta treba da se odlucis da li da razdvajas Fizicka i pravna lica u dve tabele.Ali ako to sada ostavis po strani mozda bi mogao da resis problem sa jos jednim malim poljem u TblKlijenti.Dodaj polje tipa Number sa nazivom VrstaKlijenta .Na formi za unos novog klijenta napravi Option group kontrolu i vezi je za ovo polje.To znaci da ces kod unosa uvek odabrati ili opciju fizicko lice ili opciju privatno lice.U odnosu na tvoj izbor Access ce kod unosa automatski u polje Vrsta klijenta uneti brojnu vrednost npr. .. 1 ili 2.Dalje kod pravljenja Upita KlijentiQ koji je izvor podataka za formu u kojoj pregledas klijente mozes da formiras novo polje na sledeci nacin
Naziv klijenta:Iff(VrstaKlijenta=1,[Prezime]&" "&[Ime],[NazivFirme])

Prevedeno na srpski to bi glasilo : Ako je VrstaKlijenta jednaka vrednosti 1 ,Naziv klijenta je Vrednos polja Prezime i ime ,a ako nije onda je naziv klijenta vrednost polja NazivFirme.

Na formi koja je vezana za ovaj upit napravi polje Naziv klijenta i sakri polja Ime,Prezime i naziv firme.

nadam se da ces se snaci.naravno zapamti Zidarev savet jer je kod ozbiljnijih zahteva korisnika ovaj nacin ustvari petljancija sa potencijalnim izvorom gresaka.
 
Odgovor na temu

[es] :: Access :: Tri razna problema

[ Pregleda: 2597 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.