[ FOX028 @ 02.07.2011. 22:36 ] @
Kako da u Query-ju napravim da mi se ne prikazuju dupli podaci? |
[ FOX028 @ 02.07.2011. 22:36 ] @
[ banem @ 02.07.2011. 22:51 ] @
SELECT DISTINCT
ili SELECT DISTINCTROW Prvi ima opis: Omits records that contain duplicate data in the selected fields. Drugi: Omits data based on entire duplicate records, not just duplicate fields. [ FOX028 @ 02.07.2011. 22:59 ] @
Mozes li mi malo to pojasniti, evo sta mi konkertno treba. Pravim katalog diskova sa filmovima, e sad napravio sam Append Query koji mi dodaje glumce u odredjenu tabelu, ali problem mi se javlja kada mi se pojavi glumac koji vec postoji u tabeli. Pa sam mislio da napravim query koji mi nece prikazivati vise puta jednog istog glumca.
[ banem @ 02.07.2011. 23:14 ] @
E sad, ima barem tri načina da se to ne desi. Možda je najlakši da postaviš indeks na polje naziv glumca, Duplicates: No i onda upit neće moći da doda duplikat u tabelu. To što tebi treba nije ono što si prvi put pitao. :)
[ FOX028 @ 02.07.2011. 23:21 ] @
Kad sam uklonio primary key iz tabele u kojoj mi dodaje glumce i kada sam index stavio na yes(duplicateOK), ali mi sad ubacuje vise puta iste glumce
[ SLOJ.1973 @ 03.07.2011. 00:02 ] @
Lepo piše:
Citat: banem: E sad, ima barem tri načina da se to ne desi. Možda je najlakši da postaviš indeks na polje naziv glumca, Duplicates: No i onda upit neće moći da doda duplikat u tabelu. To što tebi treba nije ono što si prvi put pitao. :) Znači ne brišeš primary key i ne postavljaš yes duplikate ok,već onako kako ti je Banem napisao.I onda append query dodaje samo one podatke kojih nema u tabeli.Ako okačiš primer i malo bolje objasniš šta ti treba,možda nađemo pravo rešenje. Pozdrav [ FOX028 @ 03.07.2011. 00:13 ] @
Kada postavim tako kao sto je rekao javlja mi gresku, evo okacicu fajl. Kada otvorim formu frmBaza_filmovi i kada kliknem na dugme Run Append Query kada u polju Glavna uloga odaberem nekog glumca sa liste javlja mi gresku.
[ SLOJ.1973 @ 03.07.2011. 00:27 ] @
Pa javlja da ne može da doda sve podatke,jer ih već ima u tabeli.Šta je sporno? Zar nisi to i želeo?
[ FOX028 @ 03.07.2011. 00:29 ] @
Sporno je to sto ja hocu da ih ne dodaje u tabeli Glumci ako vec postoje, vec samo u tabelu Baza Filmova i da mi se ne pojavljuje ta poruka.
[ SLOJ.1973 @ 03.07.2011. 00:38 ] @
Ovako sam te ja shvatio:hoćeš da preko forme frmBaza_filmova preko komandnog dugmeta run append query dodaš glumca u tabeli tblGlumci,ako ne postoji ,a ujedno da ga dodaš u tabelu tblBazaFilmova,koja ti je inače record source za pomenutu formu.A kako si mislio da dodaš nove glumce,kad ti je row source za combo glavniglumac u stvari tblGlumci? Da li sam dobro shvatio?
[ FOX028 @ 03.07.2011. 00:44 ] @
Tako nesto.
Znaci ja preko forme unosim glumca u tblBazaFilmova a u toj tabeli su mi polja Glavna uloga1,2,3 i 4 povezana sa tblGlumci. E sad ako ne postoji Glumac u tblGlumci da ga doda a ako postoji samo da ga dodaje u tblBazaFilmova. Znaci sad mi samo treba da mi ne prikazuje ono obavestenje da ga ne moze dodati, to bi verovatno moglo da se resi nekim VBA kodom. [ SLOJ.1973 @ 03.07.2011. 00:56 ] @
Pa nije baš najbolje rešenje da dozvoliš ubacivanje glumca preko combo boxa ,koji je vezan za tabelu u koju želiš to da odradiš.Bolja varijanta je da ako u padajućoj listi tog combo boxa ne nađeš glumca,onda klikom na dugme (runappendQuery) pozoveš novu formu za ubacivanje novih glumaca,i prilikom zatvaranja te forme ,automatski će da ti se u padajućoj listi combo boxa pojaviti novi glumac.Probaj tako.Ako hoćeš,odradiću ti ja pa pogledaj.A što se tiče poruke,nju zaobilaziš tako što na početku izvršavanja koda staviš
Code: .DoCmd.SetWarnings False [ FOX028 @ 03.07.2011. 01:02 ] @
Hvala to mi je trebalo.
Uzima mi iz tblBazaFilmova imena glumaca i preko Append Query-ja ubacuje u tabelu tblGlumci. Ne bih da mi se otvara druga forma u kojoj bi unosio ime glumca, vec ako moze da iz ovih Combo Box-ova to odradi. [ SLOJ.1973 @ 03.07.2011. 01:10 ] @
Pa ne može da ti uzima iz tabele, koja je record source forme preko koje ubacuješ zapise u tu tabelu. Samim popunjavanjem forme ti već ubacuješ nove zapise u tabelu tblBazaFilmova i nema potrebe da se odrađuje nikakav appendQuery da bi popunio tu tabelu.Zato i postoje forme,da bi preko njih punio određene tabele i pravio sebi bazu podataka.Evo ti dole primer pa vidi kako bi trebalo to da izgleda.Još jedna greška postoji,a to je da si u tabeli tblGlumci postavio imena i prezimena glumaca u isto polje,a bez nekog jedinstvenog ID-a,recimo šifre tog glumca.ali sada nemam vremena da ti i to prepravljam.Pogledaj pa reci da li odgovara,jer je već kasno,spava mi se .biću tu još 10-tak minuta.Pozdrav.
Samo da dodam da na onlostfocus dugmeta za otvaranje frmGlumci dodaš Me.refresh. [Ovu poruku je menjao SLOJ.1973 dana 03.07.2011. u 02:24 GMT+1] [ FOX028 @ 03.07.2011. 06:59 ] @
Ali ja ne popunjavam tebelu tblBazaFilmova pomocu Append Query-ja, vec preko Append Query-ja popunjavam tabelu tblGlumci. Ne svidja mi se da imam jos jednu formu preko koje bi upisiva samo glumce jer to mi je dupli posao, vec ako imam glumca u bazi da ga iz baze preuzmem, ako ne da ga sam upisem i po zavrsetku upisivanja da ga dodam u bazu da bi ga imao za kasnije. Ta tabela tblGlumci mi sluzi samo da kasnije mogu da vrsim pretragu filmova po glumcima.
[ SLOJ.1973 @ 03.07.2011. 11:10 ] @
Zar ova rečenica dole ne ukazuje na to da si ipak želeo da taj append query radi upravo to što si napisao?
Citat: FOX028: Sporno je to sto ja hocu da ih ne dodaje u tabeli Glumci ako vec postoje, vec samo u tabelu Baza Filmova i da mi se ne pojavljuje ta poruka. [ Zoran.Eremija @ 03.07.2011. 13:02 ] @
U prilogu sam Vam dao resenje koje ste Vi pretpostavljam zeleli. Znaci samo resenje Append Query-ja. O ostalom bi bilo dosta diskusije i prekrajanja (modeliranja).
[ captPicard @ 04.07.2011. 13:11 ] @
Mislim da si jako loše dizajnirao bazu (iako to nije ovdje tema, ali ipak te želim upozoriti). Kao prvo, polja "glavni glumac 1", "glavni glumac 2" itd. su ti jako loše rješenje. Pogledaj malo po forumu teme o normalizaciji baze i kreni nanovo raditi bazu, to ti je moj savjet.
[ FOX028 @ 04.07.2011. 13:38 ] @
Hvala na savetu. Ali kad si mi vec sugerisao na to mogao bi mi reci zasto je to lose resenje i dati neki predlog kako da to preuredim. Hvala.
[ captPicard @ 04.07.2011. 14:05 ] @
Ako npr. u filmu ima 7 glavnih glumaca, kako češ to riješiti?
Prouči Normalizacija baze: Normalizacija [ Zoran.Eremija @ 04.07.2011. 15:11 ] @
Kolega @captPikard vas je dobro uputio i bilo bi dobro da krenete od te definicije a zatim nije lose da proucite i literature (ima ih vec dosta navedeno u ovoj temi).
Pretpostavio sam da cete traziti ovo Citat: FOX028: dati neki predlog kako da to preuredim. U prilogu Vam dostavljam inicijalno za pocetak kako da Vas model definisete, a i uradio sam primer nad tim inicijalnim modelom. Zbog vremena nisam isao dalje o cemu sam neveo u svom prethodnom postu da ima toga dosta da se prica. ![]() [ FOX028 @ 04.07.2011. 20:33 ] @
Izvini ali tek sad mi nista nije jasno. U ovom tvom primeru kad hocu da unesem glumca a da on vec postoji u tabeli glumci ne mogu ga pozvati, prikazuje mi kao da nema ni jedan glumac.
[ Zoran.Eremija @ 04.07.2011. 20:57 ] @
[ FOX028 @ 04.07.2011. 21:01 ] @
Pa kada kliknem na tu strelicu, meni se izbrise glumac i u padajucoj listi mi se ne pojavljuje ni jedan glumac. Ja hocu da mi u posebnoj tabeli budu svi glumci koje sam uneo za odredjene filmove, a u isto vreme da ih ima i u glavnoj bazi filmova. Evo okacicu moju sadasnju bazu posto sam jos nesto doradio.
[ Zoran.Eremija @ 04.07.2011. 21:19 ] @
Ipak da sam na Vasem mestu dobro bih pogledao primer koji sam Vam poslao, kao i model.
[ FOX028 @ 04.07.2011. 21:23 ] @
Pogledao sam i nije to ono sto ja hocu. U svakom slucaju hvala.
[ banem @ 04.07.2011. 21:31 ] @
Brate ala si ga zakomplikovao. Nas desetorica ne možemo da ti pomognemo.
[ FOX028 @ 04.07.2011. 22:03 ] @
Pa sta cu kad ne radi onako kako meni treba.
[ FOX028 @ 05.07.2011. 12:26 ] @
Zoran.Eremija - Primenio sam ono sto si mi ti odradio, ali imam jedan problem. I kod tebe tako isto radi. Evo u cemu je problem, kada jednom odaberem glumca ne mogu da ga uklonim vec samo da odaberem drugog glumca, a kod mene mogu da ga izbrisem ali mi brise i iz tabele Glumci
[ Zoran.Eremija @ 05.07.2011. 12:57 ] @
Moze i jedno i drugo s time sto kada se nekom filmu dodeli glumac tj upise novi koji ne postoji u tabeli Glumac u tom slucaju samo obrise iz dodeljene liste glumaca filmu, a ne obrise iz tabele Glumac. Obratite paznju kod selektovanja tog glumca jer zbog te operacije mora da odradi Requery. Zasto? Iz razloga tog ako je jednom dodeljen glumac jednom filmu, treba da ga vise ne nudi u padajucoj listi ComboBox-a. Takodje ako obratite paznju uradio sam Vam da prilikom selekcije nekog glumca na listi, ako kliknete na dugme Ucitaj u desnom delu otvorice vam se onaj sajt i tom prilikom traziti upravo tog koga ste slektovali na listi levo.
![]() kada vam se pojavi ova selekcija mozete obrisati Glumca iz te liste ![]() [ FOX028 @ 05.07.2011. 13:00 ] @
Primetio sam to, samo sto cu ja to promeniti, da mi ne trazi glumca vec film. To mi nije problem da promenim. Evo okacicu i moju verziju koju sam preradio.
[ Zoran.Eremija @ 05.07.2011. 13:18 ] @
TextBox Glumac treba da ima osobine Locked Yes i TabStop Yes
ComboBox GlumacID treba da ima osobinu TabStop No [ FOX028 @ 05.07.2011. 13:24 ] @
Hvala, pokusacu da odradim i ostalo pa kad zavrsim okacicu ga ovde da ga neko testira i pregleda. Mozda ce opet imati neka dobra primedba ili predlog.
[ 3okc @ 05.07.2011. 13:52 ] @
Pogledao sam ovaj pilot i mogu reći da je izuzetno nekomforno vršiti pretragu iz učitane stranice u Access formu.
Zar ne bi bilo mnogo efikasnije da direktno gađaš stranicu sa filmom? Npr vodiš u svojoj bazi i šifru imdb filma (koja je samo broj), i link formiraš po pravilu "imdb.com/" & imdb-šifra u formatu "tt0000000". [ FOX028 @ 05.07.2011. 14:00 ] @
Ja sam to ubacio da bi odatle uzimao opis filma, i glavne glumce. Ako ti nije problem mozes li to uraditi na ovom primeru sto je okacio Zoran
[ 3okc @ 05.07.2011. 14:29 ] @
Citat: FOX028: Ja sam to ubacio da bi odatle uzimao opis filma, i glavne glumce. A "uzimao" bi podatke ručno? (Čemu onda programiranje kada je mnogo brže to raditi iz pretraživača?) Citat: Ako ti nije problem mozes li to uraditi na ovom primeru sto je okacio Zoran Problem mi je, to nije posao od 5 minuta. Jednom kada imaš učitanu stranu sa filmom, tek sledi posao jer tek treba osmisliti pravila kako iz programa locirati sve podatke koji su interesantni: ocena, glumci, sinopsis itd. Ne znam da li bi možda bilo efikasnije stranicu učitavati kao html a podatke vaditi preko tagova?! [ FOX028 @ 05.07.2011. 20:52 ] @
Zorane aj pogledaj ovo gde sam pogresio, pokusao sam i za Zanr da odradim istu foru kao za glumce ali mi nesto nije OK. Verovatno neka sitnica.
[ FOX028 @ 05.07.2011. 21:04 ] @
Sve je OK, resio sam.
[ Zoran.Eremija @ 05.07.2011. 21:13 ] @
Da ima niz malih sitnica...
[ FOX028 @ 05.07.2011. 21:20 ] @
Mozes li mi reci koje su greske, ja gledao ali nikako da provalim. Meni sad i ono moje radi kako treba. Sta si ti ispravljao?
[ Zoran.Eremija @ 05.07.2011. 21:26 ] @
Prvo osobina relacije izmedju tabela tFilmovi i tFilmZanr treba da stoji kaskadna i za Update i Delete
![]() Zatim u podformi qFilmZanr ubacio sam polje FilmID koje predstavlja vezu izmedju Glave Forme i podforme i to sa osobinom Visible No ![]() Zatim polje Zanr dodelio sam osobinu Locked Yes i TabStop Yes a polje ComboBox polje ZanrID stavio sam TabStop No ![]() [ FOX028 @ 05.07.2011. 21:50 ] @
Hvala, izvini ako sam malo dosadan ili mozda naporan, ali volim da znam da bi naucio za iduci put. Nisam bas neki strucnjak za Access, ovo mi je prva ozbiljnija baza koju radim.
[ FOX028 @ 06.07.2011. 14:35 ] @
Moze mala pomoc, pokusao sam da napravim pretragu filmova u katalogu, ali kada odaberem kriterijume nece da mi prikaze listu i ako moze da kada se klikne na dugme opis da se otvori MsgBox u kome ce pisati opis odredjenog filma.
[ Zoran.Eremija @ 06.07.2011. 21:39 ] @
Zbog manjka vremena uradio sam Vam pretragu za Zanr i Glumca.
[ SLOJ.1973 @ 07.07.2011. 00:44 ] @
Evo i mog načina pretrage u prilogu.Još da dodam da sam ti ispravio u tabeli tFilmZanr za svojstvo FilmID indexed mora biti Yes (No Duplicates),jer jedan isti film ne može da ima više žanrova,već samo jedan.Pozdrav.
[ Getsbi @ 07.07.2011. 05:31 ] @
Slažem se da jedan film ne može biti višežanrovski. Ukoliko je potreban novi žanr, treba ga uvesti u tabelu tZanrovi. Recimo Akciona komedija. Asocijativna ili vezna tabela tFilmZanr je u ovom slučaju višak i ne odražava realno stanje poslovne problematike. Na stranu to što uzgred bespotrebno komplikuje realizaciju. Po meni je to bolje i jednostavnije rešenje.
[ FOX028 @ 07.07.2011. 07:12 ] @
Izgleda da ipak moze biti visezanrovski, bar tako kazu ovi sa www.imdb.com :)
[ SLOJ.1973 @ 07.07.2011. 08:53 ] @
Dobro,povlacim reč,neka bude,mada nije najsrećnije rešenje.Da li odgovara pretraga?
[ FOX028 @ 07.07.2011. 10:46 ] @
Pretraga je OK samo imam neke zamerke, ja sam hteo da mi vrsi pretragu i po vise kriterijuma a ne samo po jednom kriterijumu.
[ FOX028 @ 07.07.2011. 12:13 ] @
Evo odradio sam ostatak, iskombinovao sam po nesto iz oba primera. Evo da podelim i sa vama mozda neko ima jos neki predlog :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|