[ IIacaII @ 09.07.2009. 08:56 ] @
Hteo bih za svoj razred da napravim malu bazu koja bi bila ista kao dnevnik. Ako može neko da pogleda da li je ovako ispravno ili negde grešim.




[Ovu poruku je menjao IIacaII dana 09.07.2009. u 10:08 GMT+1]
[ IIacaII @ 09.07.2009. 09:06 ] @
Nije bilo lako ali setio sam se, evo baze.
[ kiselilimun @ 09.07.2009. 09:18 ] @
Ne bih da reklamiram firmu..ali jedan e dnevnik , solidan koji zavrsav posao prodaju za 100e.
Pa ako si zainteresovan javi se!

veliko pozdrav
[ pmiroslav @ 09.07.2009. 12:15 ] @
Pogledaj ovo

http://www.icentar.com/showthread.php?t=7508&highlight=ocjene
[ nkrgovic @ 09.07.2009. 12:28 ] @
Nemam access, ali na slici (jpg) koju si poslao ti ocene i predmeti nisu nikako uvezani. Ne valja ti to - mora da postoji veza, tj. mora se znati za sta je ocena, a ne samo koga je ucenika koja ocena.
[ IIacaII @ 09.07.2009. 13:18 ] @
Citat:
Ne bih da reklamiram firmu..ali jedan e dnevnik , solidan koji zavrsav posao prodaju za 100e.
Pa ako si zainteresovan javi se!

veliko pozdrav

Ovo mi je za školu iz fazona, ne moram ovo da radim ni da prodajem samo hoću da naučim access.

Znači samo da povežem tabelu ocene i predmeti i ostalo je OK ?
A da li bi morao da povežem tabelu učenici i razred ?
[ captPicard @ 09.07.2009. 14:15 ] @
Šta jedan učenik može imati samo jednu uplatu?

Trebalo bi ovako nekako:

tblUplate
----------
IDUplate PK
SifraUcenik FK
Datum
Iznos
Opis

Ajde, ovako nekako na brzinu:

tblProfesor
-----------
ProfesorID PK
Ime
Prezime

tblPredmeti
-----------
PredID PK
Naziv
ProfesorID FK

tblOcjene
----------
IDOcjena PK
Ocjena

tblPredUc
----------
PredID PK
UcenikID PK
IDOcjena FK

Tako povežeš ocjenu sa predmetom, profesora sa predmetom i predmete sa učenikom.
[ IIacaII @ 09.07.2009. 19:00 ] @
Citat:
captPicard: Šta jedan učenik može imati samo jednu uplatu?

Trebalo bi ovako nekako:

tblUplate
----------
IDUplate PK
SifraUcenik FK
Datum
Iznos
Opis

Ajde, ovako nekako na brzinu:

tblProfesor
-----------
ProfesorID PK
Ime
Prezime

tblPredmeti
-----------
PredID PK
Naziv
ProfesorID FK

tblOcjene
----------
IDOcjena PK
Ocjena

tblPredUc
----------
PredID PK
UcenikID PK
IDOcjena FK

Tako povežeš ocjenu sa predmetom, profesora sa predmetom i predmete sa učenikom.


Ovo mi je sve OK do profesora, nije mi jasno šta će u dnevniku i profesori, dovoljno je da se vidi kakve ocene neki učenik ima iz predmeta tako da njih ne bih da mešam. Mislim bitno mi je da se vidi ocena iz predmeta a ne i koji profesor predaje taj predmet, nebitno. Ako vidi neki profesor ovo ima da pop....
Jel sad dobro ovako ?
[ captPicard @ 09.07.2009. 19:04 ] @
Sorry, napamet sam pisao, umislio sam da sam vidio i tabelu profesori

Po meni je sada ok, ali počekaj još koji komentar, možda ima netko još neko pametnije rješenje...

I da, bilo bi ok da razdvojiš Ime i Prezime učenika. Ako ti treba zajedno, poslije lako spojiš...

--------------------------

auuuuuuuuu, isprika, jedna moja velika greška, ja sam predpostavio da češ imati samo jednu ocjenu za jedan predmet i jedno učenika.

izmijeni tabelu tblPredUc u ovo:

tblPredUc
------------
ID PK
PredID PK
UcenikID PK
IDOcjena

tako da možeš imati više ocjena za jedan predmet-učenik. Ovako imaš PK od tri polja. Možeš staviti i samo ID kao PK, ova dva kao FK, kako želiš.
[ captPicard @ 09.07.2009. 19:15 ] @
Hmm, i ovo Razredi mi ne ide u oko baš

ja bi to ovako napravio:

tblRazredi
-----------
RazredID PK
Godina
Odjeljenje

tblUcenici
---------
-
-
-
RazredID FK

Razumiješ? Dodaš u učenike RazredID, i od tamo onda čitaš u kojem je razredu učenik, pa ne trebaš vezati dnevnik na razred.

p.s. I za odelenje bi trebalo posebnu tablicu, ali ajde, da ne kompliciramo, ako je tebi ovako ok...

Na kraju dolazimo do toga da ti ne teba tabela Dnevnik. Šta ti je ono Ime i prezime u tabeli Dnevnik? datumOcene ubaci u tabelu tblPredUc. Izostanke i komentar isto ubaci u učenike, i to je to... Imaš sve podatke koji ti trebaju i bez tablice Dnevnik.
[ IIacaII @ 10.07.2009. 20:04 ] @
captPicard, pokušaću da primenim ovo, stavio sam zajedno ime i prezime jer sam mislio da je tako lakše pretraživati bazu ali ako ovo nije po pravilu onda ću promeniti. Znači umesto dnevnika glavna forma koja će se otvarati na početku biće "ucenici".
[ pmiroslav @ 10.07.2009. 21:23 ] @
Malo sam se udubio u tvoj problem i mislim da to i baš nije tako jednostavno za početnika pa pazi da ne odeš u krivom smjeru.
Tablica Dnevnik ti definitivno ne treba jer tvoja ukupana baza, tablice, queryi, forme i ostalo bit će zapravo dnevnik. Mislim da i uplate nebi trebalo mješati sa dnevnikom jer to nema veze sa predmetima i ocjenama osim ako ne moraš nekoga potplatiti za bolju ocjenu (ovo je naravno šala). Ali ako baš moraju biti tu i one se mogu uključiti.

Ja bih napravio tablice:

tblUčenici
tblNastavnici
tblRazred
tblPredmeti
tblPredmeti


to bi bile glavne tablice

zatim bi išla

tblSastavRazreda, u koju se slaže pripadnost učenika određenom razredu.
tblUčenik_Predmet, u koju se slaže koje predmete određeni učenik sluša i polaže, jer ima i izbornih predmeta tako da svi učenici nemaju isti program.

Na osnovu toga ja bih napravio početnu continous formu sa popisom razreda u kojoj bi izabrao razred, pa da mi se nakon toga odabira otvori druga forma sa svim podacima o odabranom razredu,
U toj formi bi odbrao učenika i otvorila bi mi se nova forma u kojoj bi u zaglavlju bili podaci o učeniku (ime, prezime i ostalo, a u subformi bi bio popis predmeta koji učenik sluša.

Klikom na određeni predmet opet bi otvorio formu u koju bih upisivao ocjene.
[ IIacaII @ 11.07.2009. 10:58 ] @
Uzeo sam školski dnevnik jer mi je tu sve poznato i mislio sam da ću najlakše shvatiti relacije na ovom primeru.
A uplate sam stavio zbog toga što skupljamo pare i za 8.mart i za eskurziju i još ponešto.
Zaboravio sam samo da podelim izostanke na opravdane i neopravdane.
Zašto tabela Ucenik_predmet sa tabelom Ocene ima vezu 1:1 ? Zar ne može jedan učenik iz jednog predmeta imati više ocena ?
[ captPicard @ 11.07.2009. 11:03 ] @
@pmiroslav: slažem se da nije baš jednostavan zadatak za početnika kao šta izgleda na prvi pogled.

Ali reci mi, zašto si dodao tabelu tblSastavRazreda? Ako stavi RazredId u tblUcenici, ne treba mu ta tabela, a isti rezultat može dobiti. Mislim da je ta tabela nepotrebna.

Sa ocjenama si napravio istu grešku kao ja u prvim postovima, pretpostavio si da će biti samo jedna ocjena po predmetu :-)

@IIacaII: si probao napraviti onako kako sam ti rekao? Ako jesi, stavi sliku, da vidimo. Mislim da bi ti ono trebalo biti ok. A ovo za početnu formu ti je dobro rekao pmiroslav. Znači staviš jedan combo na formu gdje se odabire razred i evo ti dnevnika...
[ captPicard @ 11.07.2009. 11:07 ] @
Citat:
IIacaII: captPicard, pokušaću da primenim ovo, stavio sam zajedno ime i prezime jer sam mislio da je tako lakše pretraživati bazu ali ako ovo nije po pravilu onda ću promeniti. Znači umesto dnevnika glavna forma koja će se otvarati na početku biće "ucenici".


Nisam vidio ovu poruku kada sam pisao post prije. Da, pravilnije je staviti posebno ime i posebno prezime. I da, glavna forma ti može biti učenici. Ako bude problema, javi.

by the way, prouči malo 3NF ako još nisi, bit će ti jako korisno. Točnije, moraš znati NF ako želiš raditi sa bazama podataka.

http://en.wikipedia.org/wiki/Database_normalization#Normal_forms
[ pmiroslav @ 11.07.2009. 12:24 ] @
Citat:
IIacaII
Zašto tabela Ucenik_predmet sa tabelom Ocene ima vezu 1:1 ? Zar ne može jedan učenik iz jednog predmeta imati više ocena ?


To nije veza 1:1 več više: više i pogledajn un primjeru da jedan učenik može imati više ocjema
[ captPicard @ 11.07.2009. 12:49 ] @
Citat:
pmiroslav: To nije veza 1:1 več više: više i pogledajn un primjeru da jedan učenik može imati više ocjema


Da, može imati zato jer nemaš primarni ključ u tblOcjene. Di je primarni ključ?

ajde da te odmah pitam, šta će se dogoditi ako želim putem updatesql-a izmijeniti samo jednu ocjenu za učenika 1, predmet 1 a postoje ovakvi unosi

učenik predmet ocjena
1 1 2
1 1 3
1 1 2
1 1 2
1 1 3

Ili još bolje, recimo da je ovako:

1 1 2 15.01.2009
1 1 2 15.01.2009

dakle, učenik je u istom danu iz istog predmeta dobio istu ocjenu. ja želim ispraviti samo jednu ocjenu. kako?

tblSastavRazreda ti isto nema PK.

[Ovu poruku je menjao captPicard dana 11.07.2009. u 14:06 GMT+1]
[ pmiroslav @ 11.07.2009. 16:17 ] @
Koliko ja znam nemora svaka tablica imati primarni ključ.
Ocjene se nalaze u tblOcjene i ako neku ocjenu želiš ispraviti netreba nikakav Query, več joj jednostavno pristupiš u konkretnoj tablici i ručno je ispraviš,
[ IIacaII @ 11.07.2009. 16:19 ] @
Citat:
captPicard:

@IIacaII: si probao napraviti onako kako sam ti rekao? Ako jesi, stavi sliku, da vidimo. Mislim da bi ti ono trebalo biti ok. A ovo za početnu formu ti je dobro rekao pmiroslav. Znači staviš jedan combo na formu gdje se odabire razred i evo ti dnevnika...


Nisam još, u ponedeljak ću raditi na ovom pa ću postaviti uveče.
[ Getsbi @ 11.07.2009. 16:53 ] @
Miroslave, svaka tabela treba da ima PK. U ovm tvom slučaju, tabeli tblOcjene makar dodaj kolonu OcjenaID tipa AutoNumber. Definicija Primarnog ključa je otprilike ovakva: to je atribut ili kombinacija atributa koji jednoznačno identifikuju primerke entiteta ili zapise tabele.
Ako nema primarnog kljuiča doći ćeš u situaciju da u tabeli imaš dva ili više potpuno istih zapisa. Kako ćeš znati koji od dva ista zapisa treba ažurirati, obrisati.... ? Zato i naizgled jednostavne tabele trebaju po relacionoj teoriji da imaju PK.

Pogledaj samo tvoju tabelu tblSastavRazreda. Ako ne budeš u njoj proglasio razredID+ucenikID za primarni ključ, doći ćeš u situaciju da u istom razredu imaš dva puta istog učenika.

[Ovu poruku je menjao Getsbi dana 11.07.2009. u 18:59 GMT+1]
[ captPicard @ 11.07.2009. 17:16 ] @
Citat:
pmiroslav: Koliko ja znam nemora svaka tablica imati primarni ključ.
Ocjene se nalaze u tblOcjene i ako neku ocjenu želiš ispraviti netreba nikakav Query, več joj jednostavno pristupiš u konkretnoj tablici i ručno je ispraviš,


Miroslav, prouči i ti gornji link koji sam dao:

http://en.wikipedia.org/wiki/Database_normalization#Normal_forms

Moraš normalizirati bazu. Kasnije možeš čak raditi deformalizaciju, ali samo ako si jaaaaaaako siguran da znaš šta radiš.
[ Getsbi @ 11.07.2009. 17:56 ] @
Denormalizacija se radi kada se transakciona baza podataka (ove koje mi svakdnevno ovde razmatramo) koristi kao osnova za izgradnju Data Warehuse (skladišta podataka) koje opet dalje služi za nadgradnju i pravljenje analitičke baze podtaka i aplikacije koja se na nju oslanja. Tako da bi se ovo "...ako si jaaaaaaako siguran da znaš šta radiš..." odnosilo na pravljene posebne aplikacije za analizu podataka i izdvajanje informacija koje menadžerima pomažu u donošenju odluka.

U Access-u je izvodljivo praviti i OLAP aplikacije. Čak se mogu u istom .mdb fajlu držati dve baze od kojih ona prva relaciona služi za ažuriranje ove druge takozvane dimenzione.

I da ne odem u Off Topic. Projektni zadatak "Školski dnevnik" bio bio transakciona baza, relacioni pristup, normalizacija obavezna. Projektni zadatak "Analiza osmoškolskog obrazovanja u državi" za poterbe ministra obrazovanja, bi zahtevao analitičku bazu, dimenzioni pristup i denormalizaciju.
[ captPicard @ 11.07.2009. 18:04 ] @
Ajde getsbi, imam jedno pitanje, već kada si krenuo malo dublje.

Napravi mi primjer tablica za slijedeće:

Baza terba sadržavati podatke o proizvodima, porezima, racunima, stavkama racuna.

Zanima me kako bi rješio ovaj dio sa porezima, tj. veza proizvod-porez-racun_stavke

ovako:



proizvodi
-----------
sifra PK
naziv
sifra_poreza FK

porezi
----------
sifra PK
naziv
postotak1
postotak2
postotak3

ili možda ovako:

porezi
-------
sifra PK
naziv

porezi_postotak
-----------------
sifra_porez PK
rb PK
postotak

ili na neki drugi način?

Taj primjer nije Data Warehouse, a opet ćeš na kraju doći do zaključka da je puuuno lakše i bezbolnije denormalizirati "dio tablica" koji sadrži poreze.
[ Getsbi @ 11.07.2009. 18:54 ] @
Nisam imao nameru da produbljujem temu, već da jednim savetom dam generalno pravac za relacione tabele kojima se ovde bavimo. Naravno da se ponekad ukaže potreba da ponešto treba da ostane denormalizovano, no toga je suviše malo da bi armiji novih sadašnjih i budućih korisnika Access-a na to u početku skretao pažnju. Priznajem da sam i ja koristio prvu varijantu, a i dan danas mi stoji takva tabela u bazi. Od kad su u Srbiji ukinuli različite stope po istoj tarifnoj grupi (ranije je bilo posebna stopa za vojsku, posebna za saveznu državu, posebna za republiku.....) ta tabela i nema neku svrhu, mada sam je zadržao. Znaš kako kažu: "Koga su zmije ujedale i guštera se plaši". . Sreća danas postoji tri tarifne grupe: Viša 18%, Niža 8% i bez PDV-a 0%. Kao što vidiš svaka sa po jednom stopom ili postotkom.
[ captPicard @ 11.07.2009. 18:59 ] @
Hehe, ma jasno mi je šta si želio reći, ali pao mi je ovaj primjer na pamet, pa sam morao napisati i natjerati te da priznaš :-P

I da, slažem se da je bolje ne to spominjati početnicima, uostalom, sami će shvatiti kada se počmu ozbiljnije time baviti

Neću više offtopičariti.

Pozdrav Getsbi!
[ IIacaII @ 13.07.2009. 08:21 ] @
Ako sam sve dobro shvatio to treba da izgleda ovako. Jesam u pravu?
[ captPicard @ 13.07.2009. 08:25 ] @
Da, ali makni one izostanke, dodaj to u tabelu ucenici, nema smisla da odvajas tu tabelu.

I dodaj datum u PredUce (mislim da bi trebao biti datum tamo)
[ pmiroslav @ 13.07.2009. 09:41 ] @
Kako ćeš izostanke upisivati u tabelu učenici, kad za svakog učenika imaš po jedan zapis, a izostanaka može biti više?

[Ovu poruku je menjao pmiroslav dana 13.07.2009. u 11:15 GMT+1]
[ captPicard @ 13.07.2009. 09:59 ] @
Citat:
pmiroslav: Kako ćeš izostanke upisivati u tabelu učenici, kad za svakog učenika imaš po jedan zapis, a izostanaka može će biti više?


:-D imaš pravo Miroslav, napravio sam fatalnu grešku --> podrazumijevao sam da će izostanke voditi kumulativno :-D
[ IIacaII @ 13.07.2009. 10:20 ] @
Datum sam imao u onoj tabeli Dnevnik pa kad sam je obrisao zaboravio sam da stavim ponovo. Negde sam video da se za današnji datum unosi =date() pa sam tako i stavio, jel takva opcija odgovara pošto je meni Ok da se ne mora svaki put unositi datum ručno.
A zašto datum ide baš u tabelu PredmetUce ?
[ captPicard @ 13.07.2009. 10:34 ] @
Može biti =Date() po defaultu ali ostavi mogućnost da se kod unosa/izmjene može mijenjati po želji.

Da, dobro pitanje za datum, uhvatio si me nespremna :-)

Sada sve ovisi da li želiš imati na jednom mjestu popis svih predmeta koje učenik sluša, bez obzira na ocjenu. Ili drugi slučaj, ako češ samo upisivati predmete kada učenik dobije ocjenu. Za drugi slučaj je dobro ovako kako sam ti prije rekao, ali... Ako ćemo pravilno dizajnirati bazu, trebalo bi ovako.

tblPredUce
-----------
ucenikID PK
predmetID PK

U ovoj gore tabeli imaš podatak o tome koji učlenik sluša koji predmet. Bitno je da ova tabela postoji kako se ne bi desilo da jedan učenik može "dva puta slušati isti predmet".

tblOcjenjivanje
---------------
OcjID PK
UcenikID FK
PredID FK
OcjenaID FK
Datum

U ovoj tabeli upisuješ ocjene iz predmeta.

Vjerojatno postoji još rješenja, čak i pametnijih, ali ovo će raditi posao.
[ IIacaII @ 13.07.2009. 11:58 ] @
Citat:
captPicard

tblPredUce
-----------
ucenikID PK
predmetID PK


tblOcjenjivanje
---------------
OcjID PK
UcenikID FK
PredID FK
OcjenaID FK
Datum


Jasna mi je tabela ocenjivanje ali šta si mislio sa tblPredUce, jel to nova tabela ili prepravljena tabela PredmetUce ?
Zašto bi loš izbor bio staviti datum u tabelu Ocene ?
Kako da stavim dva PK ?
[ captPicard @ 13.07.2009. 13:03 ] @
Nismo se dobro razumjeli. Ja podrazumijevam da ti tblOcjene služi da upišeš range ocjena, znači od 1-5.

U primjeru koji sam ti naveo imaš jednu tablicu tblPredUce gdje definiraš koje predmete učenik sluša, i to je to. Da nema te tabele, ti nebi mogao vidjeti ili napraviti izvještaj koje sve predmete učneik sluša dok ne uneseš ocjenu. A ovako možeš odmah unijeti koje predmete učenik sluša, bez da unosiš ocjene, i kasnije unosiš ocjene u tabelu tblOcjenjivanje.

tblPredUce je izmijenjena tabela PredmetUce.

Zatim imaš tablicu tblOcjenjivanje gdje upisuješ sve ocjene koje učenik dobije iz određenog predmeta (zato tu dodaj datum), a ocjene su vezane za tablicu ocjene, tako da ne možeš upisati ocjenu koja ne postoji. Može se riješiti i bez tablice Ocjene, ali šta da se promijeni način ocjenjivanja. I ako nemaš te tablice, moraš provjeravati unose. Kužiš? Čak možeš u tablicu Ocjene dodati i naziv

id ocjena naziv
--------------
1 1 nedovoljan

koje kasnije možeš vući u razne izvještaje (pa i svjedodžbu, ako budeš radio printanje).

Nisu dva primarna ključa, PK je jedan, ali kombinirani. Označi oba dva polja i klikni na PK u toolbaru.

p.s. sorry ako sam ti zakomplicirao naum, sve to može puno jednostavnije, ali već kada si krenuo raditi, bolje napravi kako treba :-)
Čudno mi je da se nitko ne javlja sa prijedlozima.
[ pmiroslav @ 13.07.2009. 13:39 ] @
Citat:
captPicard:  Čudno mi je da se nitko ne javlja sa prijedlozima.


Pa ja sam se par puta pokušao uključiti, čak sam priložio i primjer sa svojim prijedlogom, ali me nekako ignorirate.
II aca II čak nije ni reko dali je to pogledo i dali mu se sviđa lil ne.
[ captPicard @ 13.07.2009. 14:00 ] @
Miroslav, ispričavam se, tek sada sam skužio da si okačio primjer :-(

Pa da, to je na kraju to, samo treba dodati PK jer ti na dvije tablice fali PK.
I možda da još samo doda posebnu tabelu ocjene, i to je to!

p.s. još jednom sorry, stvarno nisam vidio tvoje rješenje.
[ IIacaII @ 13.07.2009. 14:09 ] @
Citat:
pmiroslav: Pa ja sam se par puta pokušao uključiti, čak sam priložio i primjer sa svojim prijedlogom, ali me nekako ignorirate.
II aca II čak nije ni reko dali je to pogledo i dali mu se sviđa lil ne.


Pokušavam od svih primera i primedbi da shvatim logiku postavljanja tabela i njihovo spajanje relacijama. Morao bih biti dobro upućen u sve pa da mogu da odlučujem šta mi se sviđa a šta ne.
[ captPicard @ 13.07.2009. 14:29 ] @
Miroslav ti je dao dobro rješenje, samo dodaj još primarne ključeve u one dvije tablice di fali i to je to. I ako hožeš dodaj tabelu ocjene kako sam ti napisao.
[ pmiroslav @ 13.07.2009. 15:41 ] @
Ja sam to još u petak nabrzinu napravio kako bi imali neku podlogu za razgovor. Nisam tada puno mislo o primarmim ključevima. Ako vam se to kao podloga sviđa možemo to dalje razrađivati.
[ IIacaII @ 13.07.2009. 19:42 ] @
Nikako mi nije jasno ovo sa tabelom ucenik_predmet. Nikako ne može da se poveže sa tabelom Ocene, stalno mi daje vrstu veze "indeterminate" ? Zašto ? Da li je problem postavljanje primarnog ključa jer kod pmiroslava to nije problem.

[Ovu poruku je menjao IIacaII dana 13.07.2009. u 21:07 GMT+1]
[ captPicard @ 13.07.2009. 20:25 ] @
Citat:
pmiroslav: Ja sam to još u petak nabrzinu napravio kako bi imali neku podlogu za razgovor. Nisam tada puno mislo o primarmim ključevima. Ako vam se to kao podloga sviđa možemo to dalje razrađivati.


Po meni je to dobar dizajn i može se dalje razrađivati.
[ Getsbi @ 13.07.2009. 21:20 ] @
@ IIacaII
Indeterminate je neodređena veza.Više kao nejasna. Ne treba to mešati sa neodređujućom vezom u relacionoj teoriji koja se rešava ubacivanjem novog, veznog entitetata.

Kad hoćeš da spojš tblUcenik_Predmet sa tblOcene, prvo selektuješ ceo ključ tabele roditelja (u ovom slučaju tblUcenik_Predmet ), obe kolone istovremeno, a onda prevučeš oba polja do tblOcene. Tek tada će ti ponuditi vezu One-To-Many. U Related Table/Query: moraš da odabereš sa kojim kolonama spajaš (ucenikID i predmetID naspram ucenikID i predmetID iz levog stupca Table/Query:). Na kraju potvrdi Enforce Referential Integrity i pritisni Create i dobićeš željenu povezanost.





[Ovu poruku je menjao Getsbi dana 13.07.2009. u 22:33 GMT+1]
[ IIacaII @ 15.07.2009. 13:53 ] @
OK, u minut do 12 sam ukapirao.

[Ovu poruku je menjao IIacaII dana 15.07.2009. u 15:10 GMT+1]
[ Zidar @ 15.07.2009. 14:09 ] @
Zaakci najnoviju verziju baze pa da ti pokazemo.
[ IIacaII @ 15.07.2009. 14:16 ] @
Ali sad tabela UcenikPredmet ima 3 PK ? Moram priznati da mi nije jasno zašto. Video sam da je pmiroslav napisao da je to u stvari jedan ali kombinirani, zar to ne pravi zbrku kad se radi pretraga baze ?
I još nešto da li sad ovakva postavka omogućava da se i na predmete i učenike postavi combo box kako bi se izbor vršio preko njega a ne stalno ponovnim unošenjem.
[ Getsbi @ 15.07.2009. 14:58 ] @
Ako je dnevnik za jednu školsku godinu onda ti ne treba trostruki ključ na tabeli tblUcenik_Predmet, jer jedan predmet u jednoj godini može da ima samo jednom. U suprotnom u tu tabelu Dodaj tekstualno polje Godina, 4 karaktera i isto takvo polje u tabelu tblOcene. U prvoj to polje dodaj u PK i onda ceo ključ poveži kako sam ti opisao u prethodnoj poruci.

Možda će Zidar da prepravi ceo model ako bude imao vremena ali odmah da se razumemo, bez obzira što smo svi išli u školu i znamo šta je to dnevnik, ocena, predmet.... trebalo bi da postoje jasni poslovni zahtevi. Kao na primer da li je evidencija za jednu ili više godina?
[ IIacaII @ 15.07.2009. 15:14 ] @
Nisam o tome razmišljao...u stvari bilo bi bolje da se prati više godina.

Da li je ovo što sam zakačio dobro urađeno?
[ IIacaII @ 15.07.2009. 15:23 ] @
Greška, kako može za više godina ? Svaki dnevnik se vodi za jednu školsku godinu. Onda je ovo što si postavio OK, jel tako ?
[ Getsbi @ 15.07.2009. 16:00 ] @
Dnevnik je samo izveštaj koji se pokreće po želji i uz postavljeni filter nad skupom tabela ili query-ja. Ovde se radi o evidenciji ocena u školi. Zato su kolege i dobro primetile da ti ne treba tabela Denvnik. Evidencija ko evidencija može biti ograničena na period. Zavisi šta si zamislio. Može da radi za veći broj školskih godina. Kad već pomenuh školska godina (2008/2009), da se popravim u vezi kolone koju sam pominjao u prethodnoj poruci. Trebalo bi Text 9 karaktera za takvu situaciju. No, nedaj se zbuniti. Ti postavljaš poslovna pravila. Možda je najbolje da bude za svaku školsku godinu novi .mdb fajl. Onda je moje prikačeno rešenje, za sada O.k. Dok neko neda primedbu. Nema idealnih rešenja.

Evo dodatno sam povezao tblUcenici i tblUcenik_Predmet.
[ IIacaII @ 15.07.2009. 16:13 ] @
OK, hvala svima ovo mi je dosta pomoglo da shvatim neke stvari.

[Ovu poruku je menjao IIacaII dana 15.07.2009. u 17:24 GMT+1]
[ Getsbi @ 15.07.2009. 16:22 ] @
Pardon. Popravio sam. Greškom sam zakačio .ldb fajl.
[ captPicard @ 15.07.2009. 16:33 ] @
Da, rješenje tio je ok. Jedino šta bi ja možda izbacio onu tabelu tblSastavRazreda, jer nije potrebna. Doda u tblUcenici polje RazredID i poveze to na tblRazredi. Od tuda može lako izvući sastaav razreda. Ali neka napravi kako želi i kako je njemu lakše...
[ Getsbi @ 15.07.2009. 17:10 ] @
U pravu si. Tabela tblSastav_Razreda nema svrhu ako se prati jedna škoska godina. Ako bi pratili više školskih godina onda bi jedan učenik išao u više razreda, a svaki razred bi imao više učenika. Tada bi nam vezna tabela bila potrebna uz naravno drugačiji ključ od ovog koji sam ostavio. Sve je stvar odluke postavljača teme.
[ captPicard @ 15.07.2009. 17:17 ] @
Citat:
Getsbi: U pravu si. Tabela tblSastav_Razreda nema svrhu ako se prati jedna škoska godina. Ako bi pratili više školskih godina onda bi jedan učenik išao u više razreda, a svaki razred bi imao više učenika. Tada bi nam vezna tabela bila potrebna uz naravno drugačiji ključ od ovog koji sam ostavio. Sve je stvar odluke postavljača teme.


Tako je.

Ali bilo bi zgodno da proba realizirati tvoj prijedlog da se vodi više školskih godina. Da proba napraviti neki prijenos onih učenika koji su prošli razred u slijedeću godinu, a oni koji nisu da ostanu... Zgodan je ovo primjer za učiti baze.
[ Getsbi @ 15.07.2009. 17:47 ] @
Za višegodišnju evidenciju moglo bi za početak da izgleda ovako kao u donjem primeru.
Trebalo bi da je jasno da Matematika za prvi razred i Matematika za drugi razred imaju različite vrednosti za PredmetID.
Takođe i prvi razred ove školske godine i prvi razred prethodne godine takođe imaju različite vrednosti za RazredID. Povezao sam nastavnike u evidenciju kako bi je upotpunio.
[ IIacaII @ 15.07.2009. 19:39 ] @
Citat:
captPicard: Tako je.

Ali bilo bi zgodno da proba realizirati tvoj prijedlog da se vodi više školskih godina. Da proba napraviti neki prijenos onih učenika koji su prošli razred u slijedeću godinu, a oni koji nisu da ostanu... Zgodan je ovo primjer za učiti baze.


Ma bilo mi je bitno da prekopiram dnevnik u bazu podataka pošto imamo access u sledećoj godini, čisto da se malo pripremim. Ko će još dodavati i ponavljače, mislim kome je bitan taj podatak.
Sledeće nedelje počinjem sa query i formama, ako nešto nepza eto me.
[ Zidar @ 15.07.2009. 19:42 ] @
Nisam siguran da smo odgovorili na pitane "kako se postavlaj relacija ako je PK tabele roditelj slozen (vise od jednog polja)".

Ovo je skinuto sa modela Skolski_Dnevnik_G2:



Prvo se navuce Ucenik an Ucenik. Kad se otvori prozorce za opis relacije, onda se u drugom redu izaberu odgovarajuca polja na levoj i desnoj strani. I tako dokle ima polja u PK tabele roditelj.
[ Getsbi @ 15.07.2009. 20:00 ] @
Odgovorio ja u prvoj poruci na trećoj strani. Može tako kako ti kažeš i onda se u prvom momentu ne vidi ponuđena veza On To Many (jer ga je to zbunjivalo). Može i ceo slektovani ključ da se prevuče odjednom i onda ponudi odmah On To Many. I u jednom i u drugom slučaju treba upariti polja u prozoru Edit Relationshipsi i potvrdi Enforce Referential Integrity .

[Ovu poruku je menjao Getsbi dana 15.07.2009. u 21:46 GMT+1]
[ Zidar @ 15.07.2009. 20:28 ] @
OK, nisam znao da se ceo kljuc moze povuci. Lepa caka, ovde bi kazali 'very neat, indeed' :-)

NIsam gledao verziju za vise godina u istom fajlu, mislim da je prekomplikovana sama ideja za pocetnika. Verujem da je korisnije da covek sada pocne da radi sa ovom verzijom, jedna baza, jedna godina, jedan razred.

Model koji je dat u sustini je korektan. Ima sve sto treba par stvarcica vise. 1) Mozemo eliminisemo na primer tabele Razred i Sastav razreda, jer radimo jednu godinu, jedan razred. 2) Moze da se ukune i relacija sa tblUcenici na tblOcene. Zasto? Pa imam to isto kroz tabelu tblUcenik_Predmet. Ovo nije big deal, ni jedna ni druga primedba, i da ostanu ove stvari, ne smetaju, ali mogu da zbune. 3) Takodje bih obrisao i tablu tblOcjene (ijekavski), jer njenu ulogu sada ima tblOcene. Dodao bih jos jednu tabelu, da se objasne uplate (svrha uplate).

Sve u svemu, malkice prepravljen model (ne ispravljen, pocetni nije bio los pa da se ispravlja, nista nije ispravljeno) izgledao bi ovako:



Rekoh, ne bih se upustao u resavanje problema 'vise godina, vise razreda' jer otvaramo novu kutiju sa crvima, malo je rano. Mozda je bolje sada ici kroz sve atbele modela i podesiti za sva polja (gde treba) properties Validation Rule, Required. Normalizaciaj i relationships diagram je samo jedan deo integriteta podataka. Ostalo su constraints - validaciaj i NULL vrednosti. Malo sm bio testirao prilozene forme i tabele i uneo sam ocenu 0 (nula) bez problema. Mozda se moze uneti i ucenik bez imena ili prezimena? Kad se pociste ovakve stvari, neka covek pocne da gradi aplikaciju.

Tu se namecu pitanja:
- kako uneti ocene, po metodi jedan predmet - svi ucenici, ili jedn ucenik - pa se unose predmeti? Trebaju li nam forme za jedan ili drugi nacin ili za neki treci? Ili mzoda trebo obe situacuje da resimo. Na primer, kad se unose ocene sa pismenog zadatka, onda ima smisla fixirati predmet pa dodavati ucenike. Ako se ispituju djeci usmeno, onda ima smisla otvoriti formu sa jednim ucenikom pa upisati samo tu ocenu.

- kako obracunati srednju ocenu na kraju tromesecja ili na kraju polugodista? Iammo, li uopste nesto sto nam kazuje koji je semstar/trimestar u pitanju i d ali je to uopste vazno?

- ima li potrebe zakljucati ocene iz prethodnih tromesecja, kako se zastititi od sopstvenih nenamernih gresaka?


Zakacio sam bazu sa izmenama i nesto malo zimene na formi Ucenici.

:-)

[ Getsbi @ 15.07.2009. 20:59 ] @
Obzirom da je IIacaII u svojoj prvoj porucu izjavio: "Hteo bih za svoj razred da napravim malu bazu ..... " onda mu ova varijanta najviše odgovara. Kad direktor bude video efekte elektronskog dnevnika možda će kolega da dobije honorarni posao i napravi evidenciju za celu školu. Čini mi se, da negde na forumu imamo jedan takav program napisan u Excelu što bi moglo da posluži kao izvor za ideje. Ako ga pronađem, dodaću link ovde. U svakom slučaju, IIacaII sad ima dosta materjala za razmišljanje i donošenje odluka.
[ IIacaII @ 15.07.2009. 21:10 ] @
Moj tata će se još više oduševiti.
Ja sam mislio sledeće nedelje da krenem dalje ovako:
Otvara se prvo razred znači bira se razred i odeljenje, zatim se iz combo box bira učenik a onda dalje opcije za izbor unosa ocene, uplate ili izostanka. Prilikom unosa ocene bira se takođe iz combo box-a predmet. Ali nisam još pročitao sve o formama pa nisam siguran baš kako ću to postaviti.

A nije loše ono što je rekao Zidar, kad se radi pismeni ili kontrolni profesor pregleda radove kući i onda ima sve ocene pa samo treba da ih unosi znači ne mora pojedinačno da bira učenika i predmet. Bilo bi dobro da napravim opciju Pismeni i kad se ona otvori da se zatim otvori predmet i zatim lista svih učenika a pored njih polje ocena, i onda samo da rešeta.Jel ovo problematično za pravljenje forme?

[Ovu poruku je menjao IIacaII dana 15.07.2009. u 22:23 GMT+1]
[ Zidar @ 15.07.2009. 22:01 ] @
By Getsbi:
[QUOTE]Obzirom da je IIacaII u svojoj prvoj porucu izjavio: "Hteo bih za svoj razred da napravim malu bazu ..... " onda mu ova varijanta najviše odgovara.[/QUOTE]

By IIacaII:
[QUOTE]Otvara se prvo razred znači bira se razred i odeljenje, zatim se iz combo box bira učenik a onda dalje opcije za izbor unosa ocene, uplate ili izostanka. [/QUOTE]

Ne moze i jedno i drugo. Preporucili smo da se radi jedan razred, jedna godina. Znaci, nema sta da se bira razred, samo je jedan razred unutra. Sledece godine, startovati sa praznom bazom i prepisati podatke o ucenicima ako treba.

Predlazem ovakav tok aplikacije:

Glavni meni:

1) Spisak ucenika
2) Unos ocena po predmetu
3) Upiti i izvestaji
4) Odrzavanej baznih tabela

Spisak Ucenika = datsheet ili cont form, koji poakzuje sve ucenike. Klikili dvoklik na ucenika otvara formu za jednog ucenika. na formi za ucenika postoji subforma sa ocenama, vezana za tog ucenika. Tu se mogu unositi ocene po uceniku.

Unos ocena po predmetu = datasheet ili cont form, za slucajeve kad se unose ocene sa testova i pismenih zadataka. Ovde staviti subdatasheet, pa se za odabrani predmet otvori subdatasheet i unesu se ucenici i ocene za taj predmet i tu situaciju

Upiti i izvestaji - sve sto nam padne napamet da trazimo od sistema, od toga 'ko nije odgovarao fiziku' i 'ko niej uplatio za ekskurziju' do svedocanstava sa srednim ocenam za svakiog ucenika, zbirni izvestaji za direktora skole i slicno.

Odrzavanje baznih tabela: ovde upisujemo podatke u one tabele koje na relacionoj shemi nemaju roditekja (ocene, nastavnici, predmeti) pa i nekim tabekama koje su njihova deca (Nasatvnik-predmet)

Kad amlo uznapredujemo, podelicemo bazu an dva dela, podaci (bask end) i sve ostalo (forme, izvestaji, kveriji) = Front end. Onda ce nam trebati i opcija na meniju "Izaberi back-end". Tada bi apliakciaj sotala sita a samo bi se menjao back-end, na priemr iz godine u godinu. Ili bi svaki ucitelj imao svoj back-end i koristio istu aplikaciju...



[ Getsbi @ 15.07.2009. 22:25 ] @
Evo ovde možeš skinuti .xls fajl o kojem sam govorio.

http://www.zcarandjelovac.org.rs/skolarac.zip

Čisto zbog ideja i upoznavanja sa tematikom. Prvu formu sa korisničkim imenom i lozinkom zatvoriš i na pitanje da li želiš da snimiš promene, pritisneš Cancel.
[ pmiroslav @ 16.07.2009. 06:26 ] @
Zidar je predložio da se ukinu tablice tblRazred i tblSastavRazreda. Ja bih o tome razmislio iz razloga ako te tablice imamo ona možemo imati i bazu učenika cijele škole koji tada mogu i za vrijeme školske godine prelaziti iz razreda u razred (što može biti slučaj) i tada sa sobom vuči i podatke o ocjenama i ostalo.
[ galac1968 @ 16.07.2009. 07:02 ] @
U skoli to funkcionise na sledeci nacin. Na pocetku godine se otvore novi Dnevnici za tu skolsku godinu,unesu se potrebni podaci i lepo se sloze.Nastavnk iz baze dnevnika (Nastavnicka kancelarija) uzima Dnevnik razreda koji mu je trenutno potreban i u Razredu vodi evidenciju podataka o svakom uceniku.
Hoce neko da pogleda ocene,opet uzima Dnevnik (iz baze Dnevnika) za odredjeni razred i lista do Imena odredjenog Ucenika koji ga interesuje.
Zelim izvestaj,uzmemo Dnevnik i na papir izvasimo sve podatke.
Pamtim da se tako nekad radilo a sada vidim mora mnogo komplikovanije
Znaci jedna baza,sa dobrim Query-em moze ovo da zavrsi. Imam malo vremena ali cu pokusati ovo da uradim i prosledim.
[ Zidar @ 16.07.2009. 14:41 ] @
Osnovna baza se sada moze prosiriti da radi ovo ili ono, to nije problem. Medjutim, covek je pocetnik i bolje je pustiti ga da pocne da radi, u najporstijem slucaju tacno jedno odelenje, jedna skolska godina. Ko hoce, moze da pravi sistem za celu skolu, i za celu opstinu. Koliko znam, takav sistem postoji, barem u Srbiji, i radi i mnogo vsie nego sto mi mozemo da smislimo ovd ena forumu i skole ga koriste.

Kako vam drago

[ IIacaII @ 16.07.2009. 20:16 ] @
Citat:
Zidar: By Getsbi:
[
Ne moze i jedno i drugo. Preporucili smo da se radi jedan razred, jedna godina. Znaci, nema sta da se bira razred, samo je jedan razred unutra. Sledece godine, startovati sa praznom bazom i prepisati podatke o ucenicima ako treba.

:-)


To sam promašio skroz, jedan razred=jedan dnevnik što znači da ne treba ona tabela SastavRazreda, pa možda ni Razred, jer onda i bazi mogu dati naziv recimo III/2 i podrazumeva se da su ti učenici svi iz tog razreda jel tako ?
[ Zidar @ 16.07.2009. 21:48 ] @
Tako je.
Srecan rad.
[ IIacaII @ 19.07.2009. 20:06 ] @
Evo odmah je zapelo, kako da spojim ime i prezime u jedno polje na formi ?
[ pmiroslav @ 20.07.2009. 06:18 ] @
Kao prvo polje ime i polje prezime u tblUcenici trebaš pretvoriti u textBox, a ne combo kao što je sada.
U formi Ucenici napravi novi text box u koji kao Control source napišeš:

=[Prezime] & ", " & [ime]
[ IIacaII @ 20.07.2009. 19:51 ] @
Ok
[ IIacaII @ 21.07.2009. 12:24 ] @
Nešto mi baš ne ide.Ne mogu da namestim da se ne vidi ID broj nego samo prezime i ime, a nisam baš siguran da li sam dobro postavio dnevnik, da li uopšte tereba da ima u toj formi ID ili je dovoljno samo prezime i ime.
[ pmiroslav @ 21.07.2009. 13:42 ] @
Pa rekao sam ti da polje sa imenom i prezimenom treba biti tipa Text Box, a ti si ga napravio List Box. ID mora da bude na formi jer ti je to poveznica sa subformom.
Ako baš nećeš da ti se vidi u propertisima toga Text Box-a pod Visible staviš No

Zašto nepotrebo koristiš Combo Box i List Box.
U formi Učenici za polja ime i prezime upotrebio si Combo, a treba Text box. Combo koristiš kada biraš podatke iz neke druge tablice i zapisuješ ih u tablicu na koju se oslanja forma.
U tablici Predmet, polje predmet također treba biti Text Box. Sugeriram ti da ne stavljaš isto ime za tablicu i pojedino polje u tablici. tablicu nazovi recimo tblPredmet, formu frmPredmet.


[Ovu poruku je menjao pmiroslav dana 21.07.2009. u 14:54 GMT+1]
[ Getsbi @ 21.07.2009. 13:57 ] @
I ako si odlučio da pratiš jedan razred, jednu školsku godinu i da ti tabela tblOcene bude evidencija, ne treba ti ni tabela tblPredmetUcenik jer svi imaju iste fiksne predmete. Tu tabelu si već uvukao u SQL za Record Source subforme. Tabela tblOcene je u početku bila predviđena za šifarnik ocena (1,2,3,4,5; nedovoljan,dovoljan, dobar, vrlodobar, odličan).
[ galac1968 @ 21.07.2009. 14:43 ] @
Ajde ljudi pogledajte ovo i primam svaki komentar.Ovo je samo onako sirovo uradjeno a za dalje nisam imao vremena.
[ pmiroslav @ 21.07.2009. 15:25 ] @
Ja imam Access 2003 i ne mogu otvoriti *.accdb file.
[ captPicard @ 21.07.2009. 15:59 ] @
Citat:
galac1968: Ajde ljudi pogledajte ovo i primam svaki komentar.Ovo je samo onako sirovo uradjeno a za dalje nisam imao vremena.


Čekaj malo, di si ti sada?
Nakon šta smo obradili cijelu temu imenika/dnevnika, ti zakačiš "sirovu" bazu, a takoreći imaš gotovo rješenje par postova iznad.
[ Getsbi @ 21.07.2009. 16:02 ] @
@ galac1968
Tabele tblOcene i tblPredmeti nemaju PK. Tabela tblPredmeti je nepovezana iako bi po meni trebalo vezati za tblOcene, pošto je tblOcene očigledno evidencija. Veza tblUcenici i tblNastavnik je nejasna. Nema potrebe za njom. Mnogo bi mi vremena trebalo da ovo ispravljam jer 2007-cu koristim samo da nešto pogledam. Lakše je ako bi fajl konvertovao u 2003.

I u ostalom prati temu. IIacaII ima korektniji model u zadnjem postu. Izuzev jedne zamerke izrečene u mojoj prethodnoj poruci.
[ IIacaII @ 21.07.2009. 18:12 ] @
Citat:
pmiroslav: Pa rekao sam ti da polje sa imenom i prezimenom treba biti tipa Text Box, a ti si ga napravio List Box. ID mora da bude na formi jer ti je to poveznica sa subformom.
Ako baš nećeš da ti se vidi u propertisima toga Text Box-a pod Visible staviš No

Zašto nepotrebo koristiš Combo Box i List Box.
U formi Učenici za polja ime i prezime upotrebio si Combo, a treba Text box. Combo koristiš kada biraš podatke iz neke druge tablice i zapisuješ ih u tablicu na koju se oslanja forma.
U tablici Predmet, polje predmet također treba biti Text Box. Sugeriram ti da ne stavljaš isto ime za tablicu i pojedino polje u tablici. tablicu nazovi recimo tblPredmet, formu frmPredmet.


[Ovu poruku je menjao pmiroslav dana 21.07.2009. u 14:54 GMT+1]


Ovo mi sad nije jasno, mislio sam da se i combo i list box koriste za listanje podataka a text box za unos-izgleda da ja ovde nisam nešto ukapirao pošto mi je namera bila da se oni biraju iz liste klikom a ne unosom. Jel može onda u text boxu da se napravi lista ??

I molim te pojasni mi ovo "tablicu na koju se oslanja forma" , kao misliš oslanja se, uzima podatke iz nje ?

[Ovu poruku je menjao IIacaII dana 21.07.2009. u 19:43 GMT+1]
[ pmiroslav @ 21.07.2009. 20:32 ] @
Imaš svoju formu Učenici čiji izvor podataka (Record Source) je tblUčenici. Preko te forme samo unosiš ili mjenjaš podatke u tblUčenici. Znači sva polja u njoj trebaju biti Text Box. Combo Box ili List Box ćeš koristiti ako u toj formi vučeš podatke iz neke druge tablice, a trebaš ih recimo spremiti u tblUčenici.
Ti si u tblUčenici polja Ime i Prezime stavio List Box, odakle ćeš ih listati kada su oni u toj istoj tablici.
Ja sam ti kao primjer u tblUčenici dodao polje Strani Jezik i napravio novu tablicu tblStraniJezik. Sada u tblUčenici, a i u formi Učenici za to možemo imati List odnosno Combo jer sada listamo podatke koji su u tblStraniJezik i zapisujemo ih u tblUčenici,

Pogledaj tblUčenici u Design modu, ime polja StraniJezikId, Kartica LookUp
[ IIacaII @ 21.07.2009. 20:50 ] @
Citat:
pmiroslav: Imaš svoju formu Učenici čiji izvor podataka (Record Source) je tblUčenici. Preko te forme samo unosiš ili mjenjaš podatke u tblUčenici. Znači sva polja u njoj trebaju biti Text Box. Combo Box ili List Box ćeš koristiti ako u toj formi vučeš podatke iz neke druge tablice, a trebaš ih recimo spremiti u tblUčenici.
Ti si u tblUčenici polja Ime i Prezime stavio List Box, odakle ćeš ih listati kada su oni u toj istoj tablici.
Ja sam ti kao primjer u tblUčenici dodao polje Strani Jezik i napravio novu tablicu tblStraniJezik. Sada u tblUčenici, a i u formi Učenici za to možemo imati List odnosno Combo jer sada listamo podatke koji su u tblStraniJezik i zapisujemo ih u tblUčenici,


Pa ja sam to i pokušao, da u formi Dnevnik napravim kombo box koji vuče podatke iz tabele Učenici.


Citat:
Getsbi: I ako si odlučio da pratiš jedan razred, jednu školsku godinu i da ti tabela tblOcene bude evidencija, ne treba ti ni tabela tblPredmetUcenik jer svi imaju iste fiksne predmete. Tu tabelu si već uvukao u SQL za Record Source subforme. Tabela tblOcene je u početku bila predviđena za šifarnik ocena (1,2,3,4,5; nedovoljan,dovoljan, dobar, vrlodobar, odličan).


Ja sam hteo da pratim jedan razred ali 4 godine, a nisu u svim godinama isti predmeti, u trećoj i četvrtoj godini se dodaju neki predmeti.

Ma nema veze što se dodaju, u redu je ovo što Getsbi kaže.








[Ovu poruku je menjao IIacaII dana 21.07.2009. u 22:23 GMT+1]
[ pmiroslav @ 22.07.2009. 06:04 ] @
Žao mi je ali ti nikako da shvatiš. Izvor podataka (Record Source) tvoje forme Dnevnik je tblUčenici. Ja sam ti u prošlom odgovoru pokušao objasniti da sa Combom možeš birati podatke samo iz neke druge tablice koja nije Record source forme o kojoj se govori. Svoju formu Dnevnik zamisli kao bilježnicu u kojoj su na svakoj stranici podaci za jednog pojedinog učenika i tu nemaš šta birati.
[ captPicard @ 22.07.2009. 08:14 ] @
Mislim da on u stvari želi formu u kojoj bi mogao prikazati podatke za određebnog učenika tako da odabere njegov ID ili ime i prezime i Combobox-a. Da li to želiš?

Ako da, napravi posebnu formu, na nju stavi combo, popuni ga sa podacima od svih učenika (id ili ime i prezime), i onda zavisno od ID-a uzmi ostale podatke i prikaži ih na formi. Ta forma neka ti cijela bude read-only, stavi dugme Izmjena koje će pozivati ovu formu koju sada imaš za izmjenu/unos.
[ Getsbi @ 22.07.2009. 08:16 ] @
Citat:
Citat:Zidar: By Getsbi:
Ne moze i jedno i drugo. Preporucili smo da se radi jedan razred, jedna godina. Znaci, nema sta da se bira razred, samo je jedan razred unutra. Sledece godine, startovati sa praznom bazom i prepisati podatke o ucenicima ako treba.:-)

Citat: IIacaII
To sam promašio skroz, jedan razred=jedan dnevnik što znači da ne treba ona tabela SastavRazreda, pa možda ni Razred, jer onda i bazi mogu dati naziv recimo III/2 i podrazumeva se da su ti učenici svi iz tog razreda jel tako ?


Citat:
Citat: Zidar
Tako je.
Srecan rad.


a onda ponovo...

Citat:
IIacaII: Ja sam hteo da pratim jedan razred ali 4 godine, a nisu u svim godinama isti predmeti, u trećoj i četvrtoj godini se dodaju neki predmeti.


Ovo je kontradiktorno. Moraš da se odlučiš na početku šta radiš inače će ova tema trajati u nedogled ili dok ne izgubiš živce. Ovde je problem nedefinisan zadatak. Pre nego što počneš rad sa formama, budi siguran da ti je model valjan i da pokriva ceo zadatak.

Nije sve jedno sa aspekta postojećih tabela i primarnih ključeva da li se pravi:
1. Elektronski školski dnevnik za jedan razred u toku jedne školske godine iz perspektive recimo razrednog starešine.
2. Isti taj dnevnik iz iste perspektive za četiri godine koliko razredni starešina ukupno prati jedan razred.
3. Elektroski školski dnevnik za celu školu (svi razredi više školskih godina), iz perspektive recimo direktora škole. 4. Mogao bih da zamislim i elektronski dnevnik svih škola iz perspektive ministra prosvete jedne države.

Kad počneš da radiš sa formama, popiši kakve ti sve trebaju i opiši šta treba koja da radi. U suprotnom ćeš doći u situaciju da ti se neke poklapaju po poslu koji obavljaju ili da ti neki posao ostane nepokriven. Moraš da praviš svoju dokumentaciju.
Pročitaj ovo obavezno: http://www.elitesecurity.org/t121937-0#805619
[ IIacaII @ 22.07.2009. 20:24 ] @
Citat:
IIacaII: Ja sam hteo da pratim jedan razred ali 4 godine, a nisu u svim godinama isti predmeti, u trećoj i četvrtoj godini se dodaju neki predmeti.

Ma nema veze što se dodaju, u redu je ovo što Getsbi kaže.

[Ovu poruku je menjao IIacaII dana 21.07.2009. u 22:23 GMT+1]





Ja sam se odmah ispravio
Citat:
captPicard:
Mislim da on u stvari želi formu u kojoj bi mogao prikazati podatke za određebnog učenika tako da odabere njegov ID ili ime i prezime i Combobox-a. Da li to želiš?

Ako da, napravi posebnu formu, na nju stavi combo, popuni ga sa podacima od svih učenika (id ili ime i prezime), i onda zavisno od ID-a uzmi ostale podatke i prikaži ih na formi. Ta forma neka ti cijela bude read-only, stavi dugme Izmjena koje će pozivati ovu formu koju sada imaš za izmjenu/unos.


Tačno tako, ja od početka znam šta želim samo nikako da dođem do tog. Želim da u formi (koju sam nazvao Dnevnik) odaberem (u jednom polju) prezime i ime učenika i da onda dole u subformi upišem predmet i ocenu.
Kad jedan govori treba ovako a drugi treba ovako naravno da ću se sluditi skroz i da onda izgleda kao da sam pao s kruške.
Ovde svako ima različitu viziju kako to treba da izgleda. Ali dobro ima dosta varijanti tako da kasnije mogu ovo da razrađujem.
[ IIacaII @ 22.07.2009. 20:34 ] @
Citat:
pmiroslav: Žao mi je ali ti nikako da shvatiš. Izvor podataka (Record Source) tvoje forme Dnevnik je tblUčenici. Ja sam ti u prošlom odgovoru pokušao objasniti da sa Combom možeš birati podatke samo iz neke druge tablice koja nije Record source forme o kojoj se govori. Svoju formu Dnevnik zamisli kao bilježnicu u kojoj su na svakoj stranici podaci za jednog pojedinog učenika i tu nemaš šta birati.


Ma shvatam ja o čemu ti govoriš vidiš da sam promenio ono combo box u tblUčenici u text box, shvatio sam da se combo boxom mogu uzimati podaci samo iz neke druge tablice ali mene interesuje kako onda da napravim da se imena učenika izlistavaju u ovom polju "prezime i ime" u formi Dnevnik.


captPicard

"Ako da, napravi posebnu formu, na nju stavi combo, popuni ga sa podacima od svih učenika (id ili ime i prezime), i onda zavisno od ID-a uzmi ostale podatke i prikaži ih na formi. Ta forma neka ti cijela bude read-only, stavi dugme Izmjena koje će pozivati ovu formu koju sada imaš za izmjenu/unos."

Posebnu formu ? Koja je razlika onda između te posebne i ove Dnevnik, jer po opisu ja sam tako formirao ovu formu Dnevnik.
Izvinjavam se ako ovo smara ali prosto želim da u svakom trenutku znam zašto nešto radim i verovatno će i drugima koji čitaju ili će čitati ovu temu i žele da nauče access ovo biti korisno (možda ima još ovakvih težih slučajeva kao što sam ja).
[ pmiroslav @ 23.07.2009. 12:14 ] @
Ja sam ti sada u primjeru napravio jednu formu koja se zove frmPopisUčenika. Ona na sebi ima list box sa popisom na kojem izabireš učenika i tada ti se pritiskom dugmeta otvoru forma Dnevnik sa podacima o izabranom učeniku.
Da li te to zadovoljava?
[ IIacaII @ 23.07.2009. 13:38 ] @
Citat:
SELECT tblUcenici.UcenikID, [prezime] & ", " & [Ime] AS Učenik FROM tblUcenici ORDER BY tblUcenici.Prezime;


Pa jel može neko jasno da kaže -treba napraviti upit u formi kojom se selektuju učenici iz tabele Učenici, ja se ubi razjašnjavajući šta znače "popuniti","oslanja se", itd...
To je to sad mi je sve jasno.
100%
[ captPicard @ 23.07.2009. 14:29 ] @


miroslav ti je dao super rješenje.
[ IIacaII @ 23.07.2009. 15:53 ] @
Ovo temu treba staviti u udžbenike za učenje accessa od prve do poslednje strane.
[ IIacaII @ 29.07.2009. 10:56 ] @
Citat:
pmiroslav: Ja sam ti sada u primjeru napravio jednu formu koja se zove frmPopisUčenika. Ona na sebi ima list box sa popisom na kojem izabireš učenika i tada ti se pritiskom dugmeta otvoru forma Dnevnik sa podacima o izabranom učeniku.
Da li te to zadovoljava?


Pošto sad prelazim forme i makroe interesuje me da li ovo što je napisano u VB (kad se klikne polje Otvori i otvara se Dnevnik) može da se uradi sa makroima ? Da se ne kopristi VB. Ako može da probam da uradim ako ne OK.
[ pmiroslav @ 29.07.2009. 12:09 ] @
Može i sa makroima. Ti koristi ono što ti je lakše.
[ Radovan_Dz @ 30.07.2009. 17:22 ] @
Jeste li napravili dnevnik.Ako jeste neka neko postavi za download.Hvala.
[ IIacaII @ 30.07.2009. 20:48 ] @
Citat:
Radovan_Dz: Jeste li napravili dnevnik.Ako jeste neka neko postavi za download.Hvala.


Tek sad radim forme pa dok pređem na makroe, svrati oko Nove Godine. Molim.
[ Radovan_Dz @ 31.07.2009. 02:24 ] @
Citat:
IIacaII: Tek sad radim forme pa dok pređem na makroe, svrati oko Nove Godine. Molim.


Vazi.
[ IIacaII @ 03.08.2009. 09:54 ] @
Koji je razlog da u polje ocena ne može da se unese ocena ? I zašto u polju predmeti stoji broj 1 ?
[ Getsbi @ 03.08.2009. 11:59 ] @
Malo si iskomplikovao i usput napravio neke greške, a stare nisi otklonio.
Evo sad može. Izbacio sam ti nepotrebnu tabelu tblPredmetUcenik iz relacije i podformu OceneSubform oslonio na tblOcene. Combo Box za predmet oslonio sam na tblPredmet i postavio ColumnCount = 2, Column Widths = 0cm;2cm i Bound Column = 1. (Osloniti u mom žargonu znači postaviti nešto za Record source).

[Ovu poruku je menjao Getsbi dana 03.08.2009. u 14:05 GMT+1]
[ IIacaII @ 03.08.2009. 22:18 ] @
Jasno mi je sad, ja sam svo vreme išao na properties polja Ocena u Design view a trebao sam ići na properties Ocene subforme. Tako da nikako nisam mogao da povežem subform i tabelu, odnosno oslonim.

Samo još nešto, hteo bih da dodam u Dnevnik i uplate i izostanke. Jel bolje da napravim ponovo subforme ili da napravim da se klikom otvori posebna forma za unos ovih podataka. Ili ovo uopšte nije dobra ideja.

[Ovu poruku je menjao IIacaII dana 03.08.2009. u 23:28 GMT+1]
[ Getsbi @ 04.08.2009. 07:05 ] @
Ja bih u tvom slučaju prvo napravio fromu i poformu za unos uplata i formu i podformu za unos izostanaka. Potom bih u drugoj varijanti, na posotjećoj formi Dnevnik dodao dve nove podforme. (Jedna forma sa tri podforme). Nakon izvesnog vremena bih odlučio, šta mi je efikasnije za unos podataka i šta više priliči interfejsu koji pravim.
[ vuchko.vuchko @ 22.09.2009. 16:15 ] @
Bavim se istom problematikom....uzeo sam za seminarski rad elektronski dnevnik... e imam sad stotinjak problema....
Ali me jedan ponajvise muci... interesuje me kako ste vi resili sumiranje ocena i izostanaka sa nastave..ja nemam pravih ideja pa Vas molim za pomoc!!!!
[ captPicard @ 22.09.2009. 17:43 ] @
Citat:
vuchko.vuchko: Bavim se istom problematikom....uzeo sam za seminarski rad elektronski dnevnik... e imam sad stotinjak problema....:-)
Ali me jedan ponajvise muci... interesuje me kako ste vi resili sumiranje ocena i izostanaka sa nastave..ja nemam pravih ideja pa Vas molim za pomoc!!!!


Daj malo detaljnije. Šta podrazumijevaš pod "sumiranje ocjena i izostanaka"?

by the way, pročitaj temu od početka, na većinu tvojih pitanja je vjerojatno već odgovoreno...
[ vuchko.vuchko @ 23.09.2009. 12:45 ] @
Pa citao sam ja ,ali nisam naso nesto,mozda sam i nesto propustio...

Pa interesuje me npr. kako ste vi resili pitanje zakljucne ocene iz pojedinih predmeta. npr. da li ste to radili u reportu ili nekako drugacije...

Mozda je pitanje malo uopsteno,ali sam ja mislio konkretno na ovaj vas projekat, jer mi je on dosta pomogao...
[ captPicard @ 23.09.2009. 13:47 ] @
Ne možeš raditi na reportu završnu ocjenu. Dodaj si polje "zavrsna_ocjena" koje profesor sam ubacuje...
[ {Milana} @ 13.01.2010. 21:40 ] @
Meni ovaj program SKOLARAC deluje jako dobro, uspela sam da ga probam i bez unosenja sifre kako ste opisali, ali me zanima da li se na taj nacin moze koristiti ceo program bez ogranicenja, cemu tacno sluzi sifra? Gde ste nasli taj program...radim u skoli i bilo bi mi super ako mogu da ga koristim...
[ Getsbi @ 14.01.2010. 04:19 ] @
O svemu tome sa autorom programa. Originalni sajt je http://www.zcarandjelovac.org.rs
[ {Milana} @ 14.01.2010. 12:59 ] @
Uh, sada mi nista nije jasno... ovo je sajt zdravstvenog centra Arandjelovac... ja sam napisala mail, nadam se da cu uspeti da dobijem odgovor pre sednice u skoli :) Hvala na brzom odgovoru
[ maliradoznalac @ 16.01.2010. 09:04 ] @
Za Acu

ako si jos uvek u ovoj prici a nisi napravio izvestaje, microsoft ima na svom sajtu pripremljenje obrasce za skolsku evidenciju

http://www.microsoft.com/scg/obrazovanje/pil/obrasci/default.mspx

Ima tu maticna knjiga, svedocanstva, diplome... Verovatno mozes da iskoristis za svoj projekat. Srecno!
[ mrbr @ 24.01.2012. 08:16 ] @
Ova tema je izgleda zamrla :(

Molio bih IIacaII da okači gotovu bazu ako je raspoložena da sa nama ostalima podeli svoj rad.

Hvala
[ timberman @ 25.04.2017. 20:49 ] @
Da ne pravim novu temu postaviću pitanje ovde, jer ima veze sa ovom temom. Imam bazu koja mi služi samo za jedno odeljenje. Učenik bi trebao da ima samo po jednu ocenu iz jednog predmeta tj. zaključnu, a samo u slučaju da je zaključna ocena 1 može imati jednu popravnu ocenu. Pokušavao sam sa Validation rule al nisam uspeo. Ispod je primer koji ne radi posao. Ima li neko ideju kako da to sredim?


[Ovu poruku je menjao timberman dana 25.04.2017. u 23:15 GMT+1]
[ timberman @ 26.04.2017. 00:02 ] @
Uspeo sam sa Validation rule da podesim da se popravna može uneti samo kada je zaključna jednaka 1. Grešio sam jer sam unosio za PopravniOcena umesto za tabelu Ocene. Verovatno ima bezbroj elegantnijih rešenja al ovo mi radi
Code:
([ZakljucnaOcena]>1) And ([PopravniOcena]="") Or ([ZakljucnaOcena]=1) And ([PopravniOcena]="") Or ([ZakljucnaOcena]=1) And ([PopravniOcena]<>"")

Nikako da popravim da mi npr. Marko Marković može imati samo po jednu ocenu iz svakog predmeta. Probao sam sa tipom veze al nisam uspeo.
[ Getsbi @ 26.04.2017. 06:17 ] @
Imaš tabelu viška i ključ u tabeli Ocene treba da je složen.

[ timberman @ 26.04.2017. 08:53 ] @
Hvala. Interesuje me da li je ovo dobro rešenje da se ograniči unošenje zaključne ocene il ima neko bolje rešenje osim sa VBA?
[ Zidar @ 27.04.2017. 22:02 ] @
Pitanje: Hvala. Interesuje me da li je ovo dobro rešenje da se ograniči unošenje zaključne ocene il ima neko bolje rešenje osim sa VBA?

Odgovor: Resnje je odlicno, mnogo bolje nego bilo kakav VBA kod. Ogranicenje je na nivou tabele i tu nema greska. Daj boze kad bi vecina ljudi koji se bave bazama podataka razmisljala na taj nacin. Cestitam.

Jedino moze da se malo jednostavnije napise uslov.

Uslov koji si postavio glasi: Ako postoji ocena za popravni, onda mora da bude zavrsna ocena 1.
Matematickom logikom iskazano to je P=> Q gde su P = "Postoji ocena za poravni" i Q = "Zavrsna ocena je 1".
Ovako nekako: ([PopravniOcena]<>"") => ( [ZakljucnaOcena]=1])
U Accessu imas pored AND, OR, NOT logickih operatora i operatore IMP (implikacija, =>) i EQV (ekvivalencija, <=> )

Pravilo validacije moze da se napise: ([PopravniOcena]<>"") IMP ( [ZakljucnaOcena]=1])

Ako nemas IMP i EQV, onda se P=>Q pise kao (NOT P) OR Q. EQV se pise ( (NOT P) OR Q) AND ((NOT Q) OR P). Ko ne veruje neka napravi tablicu istinitosti da se uveri. NOT P OR Q se koristi na primer u MS SQL serveru.


Primer:
Code:


Pravilo: [Popravna]>0 Imp [Zavrsna]=1

CREATE TABLE (
Ucenik text PRIMARY KEY, 
Zavrsna int NOT NULL CHECK (Zavrsna >0) ,
Popravna int NULL CHECK (Popravna >0),
CONSTRAINT [Popravni se dozvoljava samo ako je zavrsna ocena 1] CHECK( [Popravna]>0 Imp [Zavrsna]=1)
)

Dopustene vrednosti:
Ucenik    Zavrsna    Popravna
    A        3    
    B        1    
    C        1        3



Ako probas da unseses vrednost za Popravna kad je Zavrsna>1, nece moci. Ali moze da bude Zavrsna=1 a da Popravna ne postoji.

Naravno, Zavrsna je Required (NOT NULL), a popravna nije required (moze da ostane prazna, a kad je zavrsna > 1 onda MORA da bude prazna )
Ako je popravna NULL oda se CHECK (Popravna >0) ignorise.

:-)
[ timberman @ 28.04.2017. 20:45 ] @
Hvala na ovako elegantnom rešenju i objašnjenju. Imam još nekih pitanja, al pošto nemaju veze sa ovom temom otvoriću novu. Još jednom, hvala.