Treba ti unakrsni (crosstab) upit. Pročitaj na forumu i u Access helpu kako se to radi.
multi select u upitu
Zaključano
Zakačeno
Hvala Getsbi na javljanju...
Probao sam ali Crosstab mi daje ogranicene mogucnosti... Ne treba mi nista da zbrajam, racunam i sl. to vec sam program radi tokom unosa.
Najvise bi mi odgovaralo ako bi mogao nekako i prazne vrijednosti uvesti u izvjestaj.
Probao sam ali Crosstab mi daje ogranicene mogucnosti... Ne treba mi nista da zbrajam, racunam i sl. to vec sam program radi tokom unosa.
Najvise bi mi odgovaralo ako bi mogao nekako i prazne vrijednosti uvesti u izvjestaj.
Pogledaj sliku.

Ako dobro pripremiš podatke dobićeš ušravo ono što si tražio. Nemoj da odustaneš.
Ako dobro pripremiš podatke dobićeš ušravo ono što si tražio. Nemoj da odustaneš.
Evo pokušavam razne varijante ali kako god crosstab mi ne dozvoljava da se "organizujem" i dobijem one podatke sa moje slike plus fiksne podatke koji se ne vide na slici.
Ima iznad jos podataka npr.Index, ime, prezime, pol, godine starosti, tezina, visina, BMI itd.
a na slici imamo 4 discipline + 4x bodovi za iste (procenat je nebitan, on je u sustini bodovi) i sve to razvrstati u 3 datuma testiranja.
Uhhh previse komplikovano.
U ovom zbirnom upitu mi nesto ne valja izgleda.
Ima iznad jos podataka npr.Index, ime, prezime, pol, godine starosti, tezina, visina, BMI itd.
a na slici imamo 4 discipline + 4x bodovi za iste (procenat je nebitan, on je u sustini bodovi) i sve to razvrstati u 3 datuma testiranja.
Uhhh previse komplikovano.
U ovom zbirnom upitu mi nesto ne valja izgleda.
Naravno da ne može kad nisu dobro organizovani podaci.
Neke stvari ti manjkaju u poznavanju relacione teorije. Za početak raskini vezu između tabela. Svakoj tabeli zadaj Primerni ključ tipa OsobaID i TestID. Iz tabele tblTest izbaci sve kolone o osobi, i dodaj joj OsobaID. Sada ih poveži i tek onda puni podacima.
Drugi korak je da napraviš izvor za Crosstab upit. Pošto Crosstab upit može da se zasniva samo na jednoj tabeli ili jednom upitu, tad napravi jedan upit (sa ove dve povezane tabele) gde ćeš imati sve relevantne podatke za budući izveštaj.
Treći korak je pravljenje Crosstab upita.
Prvi korak sam ti uradio u prilogu.
Neke stvari ti manjkaju u poznavanju relacione teorije. Za početak raskini vezu između tabela. Svakoj tabeli zadaj Primerni ključ tipa OsobaID i TestID. Iz tabele tblTest izbaci sve kolone o osobi, i dodaj joj OsobaID. Sada ih poveži i tek onda puni podacima.
Drugi korak je da napraviš izvor za Crosstab upit. Pošto Crosstab upit može da se zasniva samo na jednoj tabeli ili jednom upitu, tad napravi jedan upit (sa ove dve povezane tabele) gde ćeš imati sve relevantne podatke za budući izveštaj.
Treći korak je pravljenje Crosstab upita.
Prvi korak sam ti uradio u prilogu.
Evo citav dan se patim sa tim Crosstab-om ali ne ide pa ne ide.
Uspio sam ovo rijesiti i bez Crosstaba. Samo sam se malo "poigrao" relacijama u upitima.
Getsbi, veliko hvala na podrsci i pomoci jer malo je nedostajalo da odustanem.
Getsbi, veliko hvala na podrsci i pomoci jer malo je nedostajalo da odustanem.
Treba mi pomoć oko izvještaja.
Imam 4 moguće situacije
1. Ako testirano lice ima 2 testa i na drugom testu nije zadovoljio neku od disciplina tade se tretira kao da nije prošlo testiranje.
If (Me.Ocjena1 = 2 Or 3 Or 4 Or 5) And (Me.Ocjena2 = 1) And IsNull(Me.Ocjena3) Then
Me.Konacna_ocjena = 1
End If
2. Ako je testirano lice prošlo oba testa pozitivno
If (Me.Ocjena1 = 2 Or 3 Or 4 Or 5) And (Me.Ocjena2 = 2 Or 3 Or 4 Or 5) And IsNull(Me.Ocjena3) Then
Me.Konacna_ocjena = (Me.Ocjena1+Me.Ocjena2) /2
End If
3. Ako je lice prošlo prvu provjeru, na drugoj palo te mu omogućena 3.provjera
If (Me.Ocjena1 = 2 Or 3 Or 4 Or 5) And l(Me.Ocjena3 =1) and (Me.Ocjena3 = 2 Or 3 Or 4 Or 5) Then
Me.Konacna_ocjena = (me.Ocjena1+me.Ocjena3) /3
End If
4. Ako lice ima samo jednu provjeru do momenta štampanja zbirnog izvještaja
If (Me.Ocjena1 = 2 Or 3 Or 4 Or 5) And IsNull(Me.Ocjena2) And IsNull(Me.Ocjena3) Then
Me.Konacna_ocjena = Me.Ocjena1
End If
Dakle, Izvještaj uredno uvozi podate iz upita samo bih sad trebao nekako kad otvorim izvještaj da mi se unutra iskalkulišu ove 4 varijante.
Probao sam mnogo kombinacija i uvijek mi rade ispravno samo dvije od četiri.
Ako ima i neka sretnija opcija da ovo rijesim tim bolje.
Ovo sam sve stavljao u Private Sub Report_Page()
Možda i tu griješim...
Hvala unaprijed.
Imam 4 moguće situacije
1. Ako testirano lice ima 2 testa i na drugom testu nije zadovoljio neku od disciplina tade se tretira kao da nije prošlo testiranje.
If (Me.Ocjena1 = 2 Or 3 Or 4 Or 5) And (Me.Ocjena2 = 1) And IsNull(Me.Ocjena3) Then
Me.Konacna_ocjena = 1
End If
2. Ako je testirano lice prošlo oba testa pozitivno
If (Me.Ocjena1 = 2 Or 3 Or 4 Or 5) And (Me.Ocjena2 = 2 Or 3 Or 4 Or 5) And IsNull(Me.Ocjena3) Then
Me.Konacna_ocjena = (Me.Ocjena1+Me.Ocjena2) /2
End If
3. Ako je lice prošlo prvu provjeru, na drugoj palo te mu omogućena 3.provjera
If (Me.Ocjena1 = 2 Or 3 Or 4 Or 5) And l(Me.Ocjena3 =1) and (Me.Ocjena3 = 2 Or 3 Or 4 Or 5) Then
Me.Konacna_ocjena = (me.Ocjena1+me.Ocjena3) /3
End If
4. Ako lice ima samo jednu provjeru do momenta štampanja zbirnog izvještaja
If (Me.Ocjena1 = 2 Or 3 Or 4 Or 5) And IsNull(Me.Ocjena2) And IsNull(Me.Ocjena3) Then
Me.Konacna_ocjena = Me.Ocjena1
End If
Dakle, Izvještaj uredno uvozi podate iz upita samo bih sad trebao nekako kad otvorim izvještaj da mi se unutra iskalkulišu ove 4 varijante.
Probao sam mnogo kombinacija i uvijek mi rade ispravno samo dvije od četiri.
Ako ima i neka sretnija opcija da ovo rijesim tim bolje.
Ovo sam sve stavljao u Private Sub Report_Page()
Možda i tu griješim...
Hvala unaprijed.
To da nešto štampaš u izveštaju a da želiš da na kraju imaš konačnu ocenu je Ok. To što pokušavaš da to radiš na događaj izveštaja je loš pristup. Takav podatak bi morao da postoji u Record Source samog izveštaja. Dakle u nekom upitu na koji se izveštaj poziva.
Zašto kažem da je loš. Zato što kad štampa stigne do kraja strane ti hoćeš da sračuna nešto što se radi od poičetka. Za višestruki prolaz kroz izveštaj postoji način na događaj On Format, kada Access prikupi zapise koji idu u odeljak Detail ali pre nego što ih složi za štampanje. Obrati pažnju na sekcije izveštaja i grupisanje. Možda ti i to pomogne.
Predlažem da isprobaš varijantu podizveštaja na izveštaju (slično podformi i formi). Podizveštaj se zasniva na drugom već kreiranom upitu gde za svakg imaš kreiranu konačnu ocenu. Povezuju se slično preko Link Master Fields i Link Child Fields. To je čistije i lakše za razumevanje i kasnije ispravljanje.
Zašto kažem da je loš. Zato što kad štampa stigne do kraja strane ti hoćeš da sračuna nešto što se radi od poičetka. Za višestruki prolaz kroz izveštaj postoji način na događaj On Format, kada Access prikupi zapise koji idu u odeljak Detail ali pre nego što ih složi za štampanje. Obrati pažnju na sekcije izveštaja i grupisanje. Možda ti i to pomogne.
Predlažem da isprobaš varijantu podizveštaja na izveštaju (slično podformi i formi). Podizveštaj se zasniva na drugom već kreiranom upitu gde za svakg imaš kreiranu konačnu ocenu. Povezuju se slično preko Link Master Fields i Link Child Fields. To je čistije i lakše za razumevanje i kasnije ispravljanje.
Šta drugo reči osim hvala i bravo Majstore sa velikim M.
Radi (1.varijanta)
Hvala još jednom
Radi (1.varijanta)
Hvala još jednom