|
[ maliradoznalac @ 11.03.2009. 09:39 ] @
| Interesuje me da li moze u access-u da se napravi kao na npr samostalnim aplikacijama da forma ima dva dela. U jednom da bude lista sa osnovnim podacima kao sto su ime, prezime a u drugom delu forme da budu svi detalji.
Najslicnije sam naisao sa Split Form, ali to ruzno izgleda. I da, imam ideju da pravim i dve tabele pa da posle pravim subform, ali mi se cini da je to bespotrebno komplikovanje. Nisam bas nesto u ljubavio sa VBforA. Tako da ako je VB resenje, molim "malo vise" detalja.
hvala |
[ Scelle @ 11.03.2009. 10:59 ] @
Ako zelis da ti na jednoj strani bude izlistan spisak (lica, proizvoda, dokumenata, bilo cega) i da ti se detalji pojave na drugoj strani forme kada kliknes na nekog clana tog spiska - to moze. Ne bi bilo ni suvise komplikovano (ja mislim...) za realizaciju. Mozda par linija koda i Query.
A ako zelis nesto drugo, ja ne razumijem o cemu se radi, pa bi mozda bilo dobro da postavis neku sliku takvog interfejsa kao primjer ili nesto sl.
[ maliradoznalac @ 11.03.2009. 11:31 ] @
e bas to mi treba :-)
hocu da iz liste u kojoj je manje podataka (npr, smao ime i prezime i mesto stanovanja) izaberem osobu a da se svi podaci o osobi pojave pored. I da tada u tim detaljima mogu da izmenim podatke.
[ Scelle @ 11.03.2009. 13:36 ] @
Evo ga.
Dodao sam tri linije koda: na dugmetu cmdSave i na On Click dogadjaj na samoj listi. Objasnjenja su u samom kodu, u vidu komentara.
Procedura je bila sledeca:
-Napravio sam tabelu (samo jednu, posto mi se cini da ti je to i potrebno) tblLica.
-Zatim sam napravio novu formu (ali ne preko carobnjaka, nego rucno - u Design Mod-u).
-Na formu sam dodao List Box, i Access me je sam pitao koje podatke ce prikazivati ova lista. Uz pomoc carobnjaka, sa samo par klikova odaberes zeljenu tabelu i kolone koje ce lista prikazivati. Vodi racuna da i primarni kljuc bude jedna od tih kolona (s tim da ga ne moras prikazati korisniku) i da njega izaberes za vrijednost koju ce lista zaista cuvati. Na primjer, kada korisnik klikne na neko "lice" iz liste, vrijednost koju Access iz liste dobija u ovom slucaju je ID_lica. Ovo ce nam trebati u sledecim koracima.
-Posle ovoga sam otvorio Properties FORME i u kartici Data izabrao da mi Record Source bude tblLica. Dodao sam sva polja iz tabele na formu (View\Field List, pa onda prevuces interesantna polja na formu) i rasporedio ih.
Nakon ovoga je usledilo kodiranje, a to pogldaj u prikacenom primjeru. Srecno! 
[ maliradoznalac @ 11.03.2009. 18:26 ] @
hvala puno!!!
tako jednostavno da me prosto sramota kako to do sad nisam znao :-)
nego, jedno pitanjce vezano za ono save dugme.
da li je mogla ta procedura da se napise za AfterUpdate za sva polja koja je moguce izmeniti pa da nema potrebe za klikom na dugme (jer se nekad taj klik moze zaboraviti)? Ja cu da probam, pa sta god da bude...
[Ovu poruku je menjao maliradoznalac dana 11.03.2009. u 19:40 GMT+1]
[ Scelle @ 11.03.2009. 21:35 ] @
Moze sta god hoces. :) Ali, cini mi se da se podaci u listi osvezavaju svaki put kada kliknes na neki drugi element liste, tako da i nema neke potrebe sa ih osvezavas nakon izmjene svakog pojedinacnog polja u detaljima. Naravno, ovo je moje misljenje...
[ Trtko @ 12.03.2009. 09:55 ] @
Malo sam prepravio @Scelletov uradak samo da vidis kako se moze i na drugi nacin
Sve se moze kad se hoce.
Pozdrav
[ Zidar @ 16.03.2009. 13:58 ] @
Pogledao sam oba primera i imam jedan problem u oba slucaja. Obe varijante koriste list box kao glavnu listu. Ono sto se izabere u listi, priakzuje se u detalju. Kao ideja, to je OK. I lepo radi u zkacenim primerime, i ejdnsotavno je. Medjutim, ako vam lista ima desetak hiljada rekorda, nije bas jednostavno rponaci rekord koji zelite da prikazete. Prosto skrolovanje niz listu nije resenje. Znaci, treba sad neki mehanizam za pretrazivanje liste. E tu se stvari komplikuju. Naravno da se sve moze kad se hoce, kako lepo Trtko kaze. Ali, nema svako Trtkovo znanje i iskustvo. Pa i sa Trkovim znanjem i iskustvom nije bas lako napraviti pretrazivac liste koji zaista funkcionise onako kako korisniku to treba.
Zato predlazem da se umesto list boxa koristi datasheet forma. Zasto? Za datasheet ne morate da programirate pretrazivanje, sortiranje i filtriranje, a za list box sve to morate. Jedna od retkih pametnih stvari koje je Microsoft uradio u verziji Access 2007 jeste upravo to - imate split forme, gde je uloga prtrazivaca i liste data datsheet formi a deytalj se uskladjuje sa trenutnim rekordom na datasheetu. Pri tom imate opcije da se lisat id etalj pozicioniraju kako god hocete, a ako abs hocete u run-time to mozete i da promenite. Resizing je intersantno reseno. No, ne volimo svi Access 2007, a lepo je imati trazenu funkcionalnost. Zakacio sam moju verziju, koja umesto list boxa koristi datsheet formu. I povecao sam broj rekorda u koje lista gleda, da bi sve bilo blize stvarnosti.
Pokusajte u list boxu, Slavkovom ili Trtkovom da pronadjete osobu Secerbegovic Stjepan, rodjen u Crnoj Gori, opstina Banjaluka (O ovome nesto kasnije....). A onda pokusajte istu osobu da nadjete u resenju koje koristi Datasheet. Sta je lakse? Slazem se da list box izgleda daleko lepse od datasheeta, ali bas i ne pruza mogucnosti za osbiljan rad. Za primere od 3-4 rekorda, radi super, ali u opraksi se radi sa hiljadama rekorda.
Sad ono 'rodjnj u Crnoj Gori, opstina Banjaluka'. Nije bas uputno da se u istoj tabeli cuvaju i opstina i republika rodjenja. Posto je ovo forum, mnogi ce jednostavno skinuti ceo primer i sagraditi aplikaciju i bzu na osnovu primera , u potpunosti. I dobice lose resenje,veoma lose, sto se tice baze podataka. Zato vas molim ako postujete baze na forum neka bar budu vljano uradjene. Ja znam da je ovo na brzaka, i da je fokus na formam koje pokazuju listu za izbor i detalje sa strane, ali verujte mi, desetine ljudi ce skinuti ove primere i nastaviti da ih 'nadgradjuju'
[ Getsbi @ 16.03.2009. 15:10 ] @
Zidar je u pravu i što se tiče Datasheet-a i zasebnih tabela za kolone DrzavaRodjenja i OpstinaRodjenja. Moglo bi se desiti da neko na kraju dobije i keca iz geografije. 
[ Zidar @ 16.03.2009. 16:22 ] @
@Galac: kazi nam sta si dodao. I promeni nazile za MDB fajl i rar. Ako meni posaljes file 'Lista_-_Detalji_Zidar.rar' imam problem - ja vec imamfajl s atakvim imenom. Znaci, preimenuj sve u Lista_-_Detalji_Galac.mdb i Lista_-_Detalji_Galac.rar. Onda nam kazi sta si to promenio i sta to treba da radi, da ne bih gubio vreme na pogadjanaje.
[ domaci_a_nas @ 16.03.2009. 17:06 ] @
Zidar je malo nervozan... 
[ galac1968 @ 16.03.2009. 17:10 ] @
Dodao sam nesto sto mislim da bi bilo korisno. Dadata su dva Command buton sa kojima se pokrece Query za pretragu podataka iz baze tjs selektuju se svi Records koji izpunjavaju uslov u Criteria Query-ja.A Zidara molim da pomogne oko koda koji bi selektovani record iz querija copyrao i vracao kao rezultat u fomu
[ Zidar @ 16.03.2009. 19:11 ] @
@ Galac: OK, tako je bolje.
Dugmad za pretragu ti uopste ne trebaju. Ceo trik je u tome da se taj deo izbegne. Ako ces vec da radis tako, da korisnik u neki pop-up unese kriterijum , onda je bolje zadrzati se na list boxu. List box je jeftiniji nego subforma - trosi manje memorije i brze radi. Datasheet se pretrazuje pomocu RightClick pa biras Filter opciju. U Access verzijama 97 do 2003 right click ti nudi za filtrovanje i text box u koji uenses sta hoces da nadjes. Unesi 'Galac', datasheet ce biti filtriran po toj koloni i pokazace samo rekorde gde pise 'Galac'. Stavi Gal* i dobices Galac, Galovic i slicno. Primeti da se ne kuca nikakv LIKE = ili slicno. Jednostavno otkucas sta ti treba. Moze i *al* i dace ti Galac, Palac, Portugalac i sv sto sadrzi 'al'. Ako se nalazis na nekom slicnom rekordu, recimo na nekom gde je ime = 'Stjepan', ali prezime nije, onda RightClick, Filet By selection ostavlja an ekranu samo Stjepane. Ako dobijes manji broj rekorda, cesto je i obican skrol dovoljan da nadjes sta ti treba,. Bilo koja kolona u datasheetu moze se filtrirati i sortirati. Uzastopnim filtriranjem dobijas sta god ti padne napamet.
Stos je nauciti da se koristi RightClick i filter/sort opcije. Mogucnosti su prakticno neogranicene. Ono sto s tim mozes da uradis, ne moze se ni priblizno isprogramirati.
Right Click dakle eliminise potrebu da se uopste razmislja o resavanju problema "A Zidara molim da pomogne oko koda koji bi selektovani record iz querija copyrao i vracao kao rezultat u fomu ". Nema kverija, nema koda, nema prebacivanja. Sve se radi u samom datasheetu, sa alatima koje je Microsoft uradio.
Ja sve moje korisnike naucim da koriste right click filterovaje i pressrecni su, a i ja - ne moram da lupam glavu sa nemogucim zahtevima za filtriranje. Kad korisnika naucis da koristi right Click, on oseca da on kontrolise program, a ne obrnuto. I to se kasnije stostruko isplati. Manje radis, a program ti bolji nego sto bi inace bio.
Podsecam na Zidarevu teoremu "The best code is no code at all"
[ Scelle @ 16.03.2009. 21:33 ] @
Citat: Sad ono 'rodjnj u Crnoj Gori, opstina Banjaluka'. Nije bas uputno da se u istoj tabeli cuvaju i opstina i republika rodjenja. Posto je ovo forum, mnogi ce jednostavno skinuti ceo primer i sagraditi aplikaciju i bzu na osnovu primera , u potpunosti. I dobice lose resenje,veoma lose, sto se tice baze podataka. Zato vas molim ako postujete baze na forum neka bar budu vljano uradjene. Ja znam da je ovo na brzaka, i da je fokus na formam koje pokazuju listu za izbor i detalje sa strane, ali verujte mi, desetine ljudi ce skinuti ove primere i nastaviti da ih 'nadgradjuju'
Donekle si u pravu, ali Problem => Rjesenje, ja ne volim da radim vise nego sto je potrebno. Treba naci neku granicu, ne mozes ocekivati od mene (ili bilo koga) da za svako postavljeno pitanje pravim idealan model podataka. Uostalom, i da je sve model idealan - niko ne moze sprijeciti korisnika da unese Meksiko Siti kao glavni grad Srbije. A to sto ce neko imati lose rjesenje zbog sopstvenog neznanja - neka ide meni na dusu. Necu nista losije spavati.  Ova tema se tice lista - detalji problema, i sigurno me nece biti stid ako neko sjutra upotrijebi rjesenje koje sam postavio. Kad bude bilo potrebe da se pravi model teritorijalne organizacije - i tu cu se rado odazvati i uradicu najbolje sto znam.
Usput, ovo sa Datasheet listom je sjajno, hvala.
[ Zidar @ 17.03.2009. 12:58 ] @
@ Scelle: ne ljuuti se, nisam nista lose mislio. Tvoj primer je potpuno OK. Problem 'lista za pretrazivanje-detalji' koji smo dodirnuli u ovoj temi nije naivan ni lako resiv.
Nesreca je u tome sto ce vecina zanemariti upozorenja i jednostavno prekopirati kakav god primer im postavimo, bez ikakvog razumevanja o cemu se radi. A to je veoma opasno, a ne vidi se na prvi pogled. Zato je bolje postaviti tabele sa mninmalnim brojem kolona da se eliminisu sve stvari koje odvlace paznju sa glavnog fokusa - "kako se pomocu liste pretrazujue skup podataka (tabele, query) da bi se prikazao detalj za tekuci element liste"
Spavaj mirno, tvoj doprinos forumu je velilki i mi to ovde jako cenimo. Nije samo onaj Nikola majstor, ima jos majstora 
Sa majstorima je uzivanje diskutovati na ravnoj nozi, ali moramo da pazimo i na posmatrace, da im ne napravimo vecu stetu od koristi. Biti majstor podrazumeva odgovornost. Od tebe i od mene ovde ljudi uce, i sta god kazes, prihvatice bez mnogo pitanja i tu mora da se pazi.
Odlican posao u svakom slucaju.

[ Scelle @ 17.03.2009. 21:41 ] @
Izvinjavam se, prvenstveno Zidaru, zbog nepotrebne reakcije (mladost, sujeta, niko-kao-ja-sindrom...  ). Molim moderatore da obrisu sve moje poruke na ovoj temi za koje smatraju da su suvisne.
[ maliradoznalac @ 18.03.2009. 09:55 ] @
Scelle nemoj da se nerviras, tvoj predlog resenja je uspesno upotrebljen u odlicno odradjuje posao, jer se baza pravi za evidenciju clanstva udruzenja koje ce imati par stotina clanova najvise (valjda ovo nece procitati niko iz udruzenja pa da mi zameri sto sam im unapred odredio maksimalni broj clanova :-)). Ako kojim slucajem broj clanova predje nekoliko hiljada, valjda ce od clanarine moci da se plati redovan programer da napravi aplikaciju a ne da ja moram da se mucim za pivo.
hvala jos jednom
[ mkaras @ 18.03.2009. 14:33 ] @
Jedan od načina je i da se na formu postavi tab kontrola sa 3 strane. Na jednoj strani se postave polja koja se najćešće koriste za pretragu, na drugu stranu postavlja se datasheet, a na treću se postavlja forma sa podacima iz jednog sloga. Mehanizam je taj da se prostim popunjavanjem polja n aprvoj strani vrši brza pretraga tabela po zadatom kriterijumu i automatski se prebacuje na treću stranu.
Druga situacija je kada se iz datasheet-a vrši pretraga podataka i prelaskom na treću stranu se vidi kompletan slog koji se može dalje obrađivati. Po potrebi neke od strana se mogu sakrivati i ne prikazivati.
[ maliradoznalac @ 09.04.2009. 22:42 ] @
sad su porasli apetiti :-)
jako mi se dopalo ovo sa listama i sad bi hteo da napravim dve liste u jedno lista clanova a u drugoj filtrirani podaci na osnovu clana koji je izabran u prvoj listi. E sad ne uspevam nikako da podesim, pa vas molim za pomoc
da napomenem, mada mislim da je pezbredmetno, podaci za drugu listu su iz query-ja
[ maliradoznalac @ 10.04.2009. 11:09 ] @
Ja uspeo sam. Da li je to dobar nacin ne znam, ali radi posao
Ubacio sam pored one dve pomenute liste i TextBox ID_clana u kojem mi se menja sadrzaj na osnovu izabrane stavke u listi, a drugu listu sam napravio da ima filter u query-ju tako sto sam postavio u Criteria = ID_clana
Da li postoji neki bolji nacin od ovoga?? Verovatno da postoji  Sad bi ja da sam izmislio toplu vodu  )
Da li bi neko hteo da podeli sa nama neko bolje resenje?
[ Getsbi @ 10.04.2009. 11:18 ] @
Delim sa tobom radost oko uspeha. Samo napred i imaj poverenja u sebe. 
[ galac1968 @ 10.04.2009. 11:28 ] @
Svaka ti cast,sada si postao pravi programer koji je ukljucio u pogon ono sto se zove kefalo i dobro je da radi. A iskreno svi mi izmisljamo Toplu vodu,samo neko manje neko vise. Milion puta sam se ubio od rada da bi na kraju naisao na resenje koje je vec neko u Help-u osmislio i uspesno se koristi poodavno. Opet negde Zidar rece Help,Google,Probajte pa tek onda na forum po gotovo resenje.
[ devil79 @ 03.05.2009. 09:32 ] @
Znam da je proslo dosta vremena ali ...
Ova ideja za pretrzivanje preko datasheet-a koju je postavio Zidar je super ali kod mene se javlja jedan problem pa ako neko moze da pomogne.
Dok ne upotrebim filter na datasheet sve lepo radi kada kliknem na record on se pojavi na formi desno i blinka kursor na izbranom tab-u u datasheet. Kada posle toga uklonim filter ili hocu dodatno da izfiltriram datasheet kada kliknem na neki record on se pojavi u formi desno ali vise se kursor ne nalazi na tom tabu od recorda na datasheet koji ja hocu vec na istom tabu prvog recorda na datasheet pa samim tim recimo ne moze da se uradi filter by selection, tj uradi ga za prvi record.
Uf, nadam se da sam sve lepo objasnio!!?
Ne znam da li je ovo samo kod mene ili kod ostalih radi?
[ Getsbi @ 03.05.2009. 10:09 ] @
Najverovatnije da nisi dobro protumačio uputstvo.
U Datasheet formi, desni klik na bilo koju stavku u koloni ime, potom u Filter For:_________ uneseš ime, pa Enter. Šetanjem po isfiltriranom Datasheet prikazu desno se pokazuju detalji. Potom brišeš filter: desni klik na bilo koju stavku u koloni ime i Remuve Filter/Sort. I tako koliko hoćeš puta.
[ devil79 @ 03.05.2009. 10:27 ] @
Izgleda da nisam lepo objasnio. Kliknem ja na dataheet formi na Filter For:_________ i unesem ime i on meni odradi filter i meni se prikazuju detalji desno od odabrane stavke, ali kada hocu ponovo da uradim dodatno filtriranje ili odem na remove filter/sort nastaje problem.
Kada kliknem na stavku meni se desno i dalje prikazuju detalji za kliknutu stavku ali na datasheet je uvek selektovana prva stavka(kursor se nalazi samo u nekom od polja 1 stavke bez obzira na koju stavku ja kliknuo) iako su prikazani desno detalji one stavke koju sam ja selektovao tako da kada hocu da uradim Filter by Selection on mi izfiltrira sa tim poljem iz prve stavke a Filter For:_________ radi i dalje, radi i Filter by Selection ali samo ostavi podatke koji su u polju prve stavke a ja sam izabrao filter by selection za polje iz 35 stavke
[Ovu poruku je menjao devil79 dana 03.05.2009. u 14:05 GMT+1]
[ Zidar @ 04.05.2009. 15:59 ] @
Devil je u pravu. Na prvi pogled sve radi lepo, ali ako s eudubis, cudne stvari se desavaju. Evo ovo treba da radi.
Dok dse filtrira, ne gledajte u detalj. tek kad zavrsite filtriranje i kliknete na tacno zeljeni rekord u datsheetu, pojavice se dole detalji. Ako na datasheet uradite 'unfilter', Access ce sam izabrati bilo koji rekord i taj ce se videti. U svakom slucaju, sta god da je izabrano u datasheetu (bilo da izabere korisnik ili izabere Access), to ce se videti dole.
Ja licno ne volim ovu dinamicku zavrzlamu. Radije sa datasheta pozivam rekord u detalju na Docmd.OpenForm. Iam poneki klik vise, ali bar znam sta se desava i pod mojom je kontrolom.

[ devil79 @ 04.05.2009. 20:00 ] @
Da, sada radi lepo :). Meni se ovo bas svidelo, pa mi bilo glupo da ostane nedoreceno. Drago mi je da si shvatio o cemu pricam jer meni objasnjavanje ne ide bas od ruke. Hvala
[ domaci_a_nas @ 05.05.2009. 10:36 ] @
Evo i ja naprosto moram da dodam bilo šta, obavezno mora da se postavi da JMBG bude jedinstven broj, uostalom to mu i samo ime znači 
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|