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

Relacija Tabela Gdje Gresim ?

[es] :: Access :: Relacija Tabela Gdje Gresim ?

Strane: 1 2

[ Pregleda: 4271 | Odgovora: 28 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.222.*



Profil

icon Relacija Tabela Gdje Gresim ?22.04.2009. u 16:39 - pre 182 meseci
Imam problem sa relacijama u tbl stavkama.Želim da svaka stavka može imati više spjanja,Tako što i svaki kupac može imati više stavki.
Gdje giješim.

Slikovito.





 
Odgovor na temu

domaci_a_nas
PHP developer

Član broj: 42333
Poruke: 524
*.dynamic.sbb.rs.



+8 Profil

icon Re: Relacija Tabela Gdje Gresim ?22.04.2009. u 18:32 - pre 182 meseci
Ništa ne razumem, ali pogledaj da li je postavljena default vrednost u polju koje je spoljni ključ u podtabeli.
Ozbiljan i odgovoran mladić
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Relacija Tabela Gdje Gresim ?22.04.2009. u 19:51 - pre 182 meseci
Imas dakle tri nivoa Kupac --- ima nekoliko --< Stavke ---- a svaka stavka ima nekoliko -- Spajanja

Proble je logicki resen, tabele su ti dobro 'spojene' koliko vidim iz dijagrama relacija. Fino. Kako sada programski resiti da za jednog 'Kupca' mozes da dodas koliko god hoces 'Stavki', i onda za svaku stavku koliko god hoces 'Spajanja'?

Parent-Child se resava parom GlavnaForma--->Subforma. Pod subformom podrazumevam bound kontrolu na glavnoj formi. Ocigledno je da ti treba GlavnaForma_Kupci i subforma_Stavke, povezane preko Kupci.ID = Stavke.ID.
1. Napravi formu GlavnaForma_Kupci koja je u Form view, a i formu subforma_Stavke koja je je u DatasheetView
Sad na GlavnaForma_Kupci dodoas formu subforma_Stavke ipovezes je (Link Master.Child field properties)
2. dalje napravi novu glavnu formu, GlavnaForma_stavke, koja ima na sebi sve sto zelis da vidis o stavki, u Form view. Pazi, ovo nije ista forma kao subforma_Stavke , treba ti kompletna nova forma.
3. Napravi formu u datasheet view subforma_Spajanja, koja ce biti u continiouus form view. Neka izgleda kao ono sto si nam dao na slici (gde su dugmad Vise/Manje).
Onda nju navuces na GlavnaForma_stavke i spojis ih preko tblStavke.RB = tblSpajanja.BrojStavke

Kako ce sad ove dve Glavne forme da rade zajedno? Za GlavnaForma_Kupci i subforma_Stavke sve je ocigledno, foma i subforma, kao Racun/Stavke racuna. Samo kucas i vozis. Stos je da za izabranu stavku otvoris u novom prozoru formu GlavnaForma_stavke. To je lako. Neka subforma_Stavke dobije kod na DoubleClick na polju Rb (to ti je PK za tblStavke, je l' tako). Dakle, na subforma_Stavke .Rb u OnDoubleClick napises jednu liniju koda ovako nekako:

Code:

sub Rb_OnDoubleClick()
'(Posto si profesionalac, ti ces naravno da dodas error handling i komentare)
Docmd.OpenForm FromName:="GlavnaForma_stavke",WhereCondition:= "Rb = " & me!Rb

end sub


Otvorice se u posebnom prozoru GlavnaForma_stavke, za bas onu stavku koja je tekuca na subforma_Stavke. GlavnaForma_stavke ima na sebi subformu, koja izgleda bas kao ono sto si dao an slici "Spajanje i dupliranje iverala". samo ti ne trebaju oni dugmiic za manje-vise. Uvek ces imati "related record u tblStavke" tako da ti se ona greska nikad nece javiti. Jedino ces verovatno izgubiti ono Resize, ali to ni ne treba u sustini. Ako ces d aradis spajanje, onda je lepo da se vidi sta ti treba. Ako neces, sva ce polja biti prazna i gotovo.

Sad polako na pocetak i citaj recenicu po recenicu jos jedamput i polako pocni da radis.



 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.172.*



Profil

icon Re: Relacija Tabela Gdje Gresim ?22.04.2009. u 20:15 - pre 182 meseci
Hvala na iscrpnom odogovoru ali ja sam vec dodao ovu komndu i sve radi ok
Code:
DoCmd.OpenForm "frmSpajanje", , , "[BRSpajanja]=" & Me.[BRSpajanja]
Ali kada zatvaram formu frmSpajanja onda dobivam gresku.ajd procitacu sta si napisao samo jos da kazem da relacija između tblstavke i tbl spajanja može biti 1:1 tako da jedna stavka vuče samo jedno spajanje.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Relacija Tabela Gdje Gresim ?22.04.2009. u 21:03 - pre 182 meseci
Pazi, ti otvaras formu frmSpajanje kao glavnu formu a ne kao subformu. Subforma je forma koja je zkacena na glavnu formu. Ti pozivas formu "frmSpajanje" sa neke forme. to ne cini "frmSpajanje" subformom.

Ti pokusavsa da ubacis rekord u tabelu tblSpajanja a da nisi zadao podatke za BrStavke. Zato dobijas gresku. Nacin koji sam ja opisao garantuje da takva greska ne moze da se desi.

Ovako kako ti radis, morao bi da posaljes BrStavke kao neki parametar formi "frmSpajanje", pa da onda ona to iskoristi kad insertuje rekord u svoju tabelu. Ima i za to resenje, ali treba previse vremena da se objasni. To je vise trik, a ono sto sam opisao jeste kako se ispravno radi. Zasto 'ispravno'? Pa zato sto se koriste standardne komande (DoCmd) i nista ,vise. Slanje parametara formi koju otvaras zahteva trikove, kojih ima nekoliko i koje moze neko drugi da ti objasni ako bas tako zelis da radis.
 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.182.*



Profil

icon Re: Relacija Tabela Gdje Gresim ?23.04.2009. u 11:11 - pre 182 meseci
Uuuuu @Zidar svaka čast ali nista te nisam baš skuzioooo.Ovo si brate malo vise zakomplikovao ili se meni čini.Hmmm
Vjeruj ja mogu postaviti tabele u mdb i okaciti ih, ali nemogu da tražim više od tebe pomoć da to uradiš u toj bazi sa nekim bezveze formama.
Zato ću postaviti pa ako je neko skužio ovo molimobih samo da da uvod u ovo sa par formi.

Ja sam na ovaj gore način već uradio 85 % programa i imam problem samo kod dodavanja prvog spajanja kakda je autonumber na formi tblstavka = 1.Tako da Ovaj sa tbl stavke neželi da proslijedi tblSpajanje index rednog broja jedan da doda kao novi record u tabelu tbl stavke.Ja bih više volio tu foru da proslijedim index tabeli tblspajanja za stavku koja je trenutna u tblStavke.I recimo još da tblStavke može za svaku kolonu imati samo jedno btlSpajanje.Možda će tako biti lakše.

Pozzz
Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Relacija Tabela Gdje Gresim ?23.04.2009. u 15:51 - pre 182 meseci
Evo kod mene radi

Na tvoju formu dodaj polje Redni, koje ti je veza za tabelu tblStavke. Mozes da ga ucinis i nevidljivim. Zatim tvoju formu ubaci u frmStavke_Glavna kao subformu. Povezi Ling master / child fields za subformu i gotovo.

Citat:
I recimo još da tblStavke može za svaku kolonu imati samo jedno btlSpajanje.Možda će tako biti lakše.

Sta ti ovo znaci/a svaku kolonu? Koju kolonu?
Prikačeni fajlovi
 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.182.*



Profil

icon Re: Relacija Tabela Gdje Gresim ?23.04.2009. u 17:13 - pre 182 meseci
Baš si se potrudio da mi ovo približiš kroz primer i svaka čast.Ali iam problem.

Opet ovo neradi ukoliko ispraznim program i uradim compact i krenem sa unosom open neprihvata spajanja za prvog kupca.Ja sam formu "frmStavke_Datasheet"
postavio u Continuous Forms jer mi tako treba da stoji zbog nekih gumbova koji trebaju da budu postavljeni za svaku kolonu.A formu "frmSpajanja_CONT" postavio sam u "Single Form" baš iz razloga zato što sam rekao da jedan record u tblStavka može da ima jedan record u tblSpajanje.I tako mi glase sve forme u programu koje sam vec postavio.I šta ti znači onaj filter u formi "frmStavke_Glavna" Rb=1

 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.182.*



Profil

icon Re: Relacija Tabela Gdje Gresim ?23.04.2009. u 17:46 - pre 182 meseci
Evo vidjeo sam da kada svoju formu frmStavke prebacim u oblik Datasheet onda radi ali kada je u "Continuous Forms" nema šanse.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Relacija Tabela Gdje Gresim ?23.04.2009. u 22:05 - pre 182 meseci
A sto ne zakacis bazu sa tvojm formom, pa da vidimo. Mozda je nesto nevezano za celu ovu pricu, pa se moze desiti dati proradi i na stari nacin? U svakom slucaju to tek sutra, dans je kasno.
 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.156.*



Profil

icon Re: Relacija Tabela Gdje Gresim ?25.04.2009. u 10:19 - pre 182 meseci
Evo opet belaja
Kada na glavnoj formi popunim kupce i sada pređem u formu stavke da dodajem materijal zašto redni broj kreće od NPR.8,4,itd..., a trebalo bih da autonumber kreće za tabelu stavke od jedinice.



Zar nemože svaki kupac imati vise stavki da one za svakog kupca imaju redosljed autonumbera od 1 pa nadanje.

[Ovu poruku je menjao Air Live dana 25.04.2009. u 11:45 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Relacija Tabela Gdje Gresim ?27.04.2009. u 14:07 - pre 182 meseci
q:
Citat:
Kada na glavnoj formi popunim kupce i sada pređem u formu stavke da dodajem materijal zašto redni broj kreće od NPR.8,4,itd..., a trebalo bih da autonumber kreće za tabelu stavke od jedinice.


Ovo se desava zato sto su postojali neki rekordi u tabeli stavke pa su obrisani. Autonumber raste uvek. Dovoljno je da samo pokusas dodavanje novog rekrda i autonumber odmah ide za jedan gore. Ako odustanes od unosa, rekord nece biti insertiovan, ali ce autonumber biti povecan. Nad autonumber poljima prakticno nemas nikakvu kontrolu. Jedino ih mozes resetovati na 0 kad uradis Compact. Ako ti smeta ponasanje autonumber, onda nemoj da koristis autonumber. Napisi tri linije koda koje ce da povecavaju redni broj onako kako ti zelis. To je bilo na forumu jedno milion puta, pa encu sad ponavljati kako se radi.

Pravilo 80:20 o razvoju aplikacija: Ako je vreme izrade projekta 100 sati, onda ce za prvih 80% projekta biti utroseno 80 sati a za preostalih 20% bice utroseno 80 sati.

 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.192.*



Profil

icon Re: Relacija Tabela Gdje Gresim ?27.04.2009. u 19:08 - pre 182 meseci
Ejjj pozdrav Zidar.Da slazem se sa tobom oko utrošenog vremena.Ali autonumber mi smeta samo iz razloga sto se preko njega otvara subforma i vidi se taj broj...Ali riješit cu ja to.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Relacija Tabela Gdje Gresim ?27.04.2009. u 21:23 - pre 182 meseci
Uh, ovo nisam video, na kraju tvog prdzadnjeg posta:
Citat:
Zar nemože svaki kupac imati vise stavki da one za svakog kupca imaju redosljed autonumbera od 1 pa nadanje.

ne moze. Autonumber je brojac na celoj tabeli. Pocinje od 1 i samo dodaje kad god pokusas da uneses novi rekord. AKo ti treba da stavke pocinju od 1 za svakog kupca, to moras da resis sam nekom funkcijom. Autonumber tu ne pomaze. Savertujem da ostavis Autonumber kako jeste, PK i ostalo, ali da ga sakrijes na subformi, da se ne vidi uopste. Sad je kasno da tu nesto menjas i ne diraj, neka ga. Dodaj jos jednu kolonu u tabeli Stavke i da to bude broj kojice pocetio od 1 za svakog kupca, i da ga onda nekom funkcijom povecavas za 1 kad uneses novu stavku. I to da se vidi.
 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.200.*



Profil

icon Re: Relacija Tabela Gdje Gresim ?29.04.2009. u 20:34 - pre 182 meseci
Hvala na odgovoru.Imam još jedno pitanje : Kako kroz cod mogu dodati sa forme spajanje na formi frmstavke novih 4 maksimalno nova recorda gdje ce mi podatke crpiti sa forme frmSpajanja.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Relacija Tabela Gdje Gresim ?29.04.2009. u 23:00 - pre 182 meseci
Citat:
Kako kroz cod mogu dodati sa forme spajanje na formi frmstavke novih 4 maksimalno nova recorda gdje ce mi podatke crpiti sa forme frmSpajanja.


Ne razumem gde treba da bude maksimalno 4 rekorda, u stavkama ili uspajanju. Ako zelis da ti Spajanje ogranicava broj stavki, onda imamo problem, ne moze child tabela da ogranicava roditelj tabelu. Tu onda nesto debelo ne valja u relacijama.

Pretpostavicu da je sve OK i pokazati jedan ancin kako se ogranicava broj rekorda u 'subformi'. Iz slike relacija koju si dao na pocetku, vidi se da je tblStavke roditelj tabela za tabelu Spajanja. Iz toga zakljucujem da zelis da ogranicis broj spajanja na 4 za svaku stavku. Princip je uglavnom isti.

1) Uvedi u tabeli Spajanja brojac, novu kolonu, BrojacSpajanja, integer, required= Yes
2) Onda stavis UNIQUE INDEX na tabeli Spajanja (RBStavke, BrojacSpajanja).
3) Onda stavis u tabeli Spajanja u design modu u Validation rule za kolonu BrojacSpajanja glasi [BrojacSpajanja] BETWEEN 1 AND 4
5) Navuci na formu subSpajanja kolonu BrojacSpajanja
6) Na fomi stavi na OnInsert kod nesto kao Me!brojacSpajanja = 1 + NZ(DMAx('BrojacSpajanja","tblSPajanja","RBStavke = " & me!RbStavke )

Vidi zakaceni primer. Neces moci da uneses u subformu spajanja vise od 4 spajanja po jednj stavki. Svrha koda je da programski dodeli brojac i da korisniku pokaze poruku a ne da spreci vise od 4 rekorda. Vise od 4 rekorda sprecavaju index i validation rule.



 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.161.*



Profil

icon Re: Relacija Tabela Gdje Gresim ?30.04.2009. u 08:06 - pre 182 meseci
Hvala @ Zidar, vidim da se trudiš da mi pomogneš oko ovoga.Ali mislim da si malo promasio ovoaj gore odgovor zato što vjerovatno ja nisam dobro obrazlozio problem.
Nije stvar u ograničavanju dodavanja,nego je fora sledeća :

Znači imam osnovnu ploču od iverala 18 mm koja je dimenzije NPR : 2100 x 600 mm eh sada na nju treba spojiti male trakice od iverala koji su inače širine 150 mm 200 mm a debljine 18 mm tj.dupliranje ploča,to je kod mene sirina trake na slici.Eh sada kada ja odem na glavnu formu i upisem na subformi "frmStavke" osnovnu dimenziju ploče na koju treba da se lijepe male trakice od iverala,onda kliknem na onaj RB koji smo naopravili i otvorim formu "frmSpajanjaStavke"(ova forma je napravljena po predlogu od tebe,gdje sam ja frmStavke dao kao osnovnu formu i frmSpajanja kao sub formu,to je bilo zbog onih ID-ova sto nije htjelo da upisuje.Što znači da mi je forma za spajanje koja je prikazana na slici subforma koja je ubacena u formu koja je napravljena od tabele tblstavke.)
Eh sada vratimo se na formu spajanja,znači ja mogu imati najviše trakica za spajanje 4 komada ali u zavisnosti kako se oni spajaju,eh sada kad ja iscrtam spajanje ploče zelim da te dimenzije od tih komadića prebacim direktno u formu frmstavke - odnosno da napunim tabelu tblStavke sa novim podatcima iz forme frmSpajanja.Fora je što npr imam dva ili više spajanja pa cod mora biti da automatski doda novi record za tabelu tblspajanja ukoliko ima više podataka za dodati.

Ali ja sam zamislio ovako možda jednostavnije sa INSERT INTO u tabelu tblstavke da postavim 4 gumba za svako spajanje i da mu dodam isti cod pa bih ja kliknuo samo na gumbove gdje se spajaju te trakice i od bih dodao record u tabelu za svaku posebno.

Pozzzz

[Ovu poruku je menjao Air Live dana 30.04.2009. u 18:44 GMT+1]

[Ovu poruku je menjao Air Live dana 30.04.2009. u 18:46 GMT+1]
 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.161.*



Profil

icon Re: Relacija Tabela Gdje Gresim ?30.04.2009. u 09:32 - pre 182 meseci
Postavio sam ovaj cod za update sa forme frmSpajanja u tabelu "tblStavke" I RADI OK Ali ima problem.
ID koji veze tbl kupac i TBLStavke moram dodati sa forme spajanja inače neće da prikaze dodati record na formi frmStavke jer neprepoznaje ID stavke.


Code:
Private Sub Update_Click()

DoCmd.RunSQL "INSERT INTO tblStavke(ID,Naziv,Duzina,Sirina,Kolicina,Duza,Kraca)" & _
"SELECT '" & Me.Redni & "','" & "Trakica" & "','" & Me.DimGore & "'," & Me.DimDesno & ",'" & _
Me.KolGoreDole & "','" & Me.KantDuza & "','" & Me.KantKraca & "'"
Me.Requery
End Sub


Moguli ovde reci da je ID tblstavke = IDtblKupci
 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.161.*



Profil

icon Re: Relacija Tabela Gdje Gresim ?30.04.2009. u 10:06 - pre 182 meseci
Sredio sam i ovaj ID ali opet nece da mi prikazuje podatke na subformi koaj stoji na glavnoj formi iako su ti podatci upisani u tabelu tblStavke.

Šta sad zeza.

Slika :

Code:
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO tblStavke(ID,Naziv,Duzina,Sirina,Kolicina,Duza,Kraca)" & _
"SELECT '" & Me.ID & "','" & "Ploča za spajanje" & "','" & Me.DimGore & "'," & Me.DimDesno & ",'" & _
Me.KolGoreDole & "','" & Me.KantDuza & "','" & Me.KantKraca & "'"
Forms!frmGlavna!frmStavke.Form.Requery
MsgBox "Uspjesno Spremnjeno", vbInformation, "Upis"
 
Odgovor na temu

galac1968
Magacioner
Controlpoint,Uzice
Pozega

Član broj: 180810
Poruke: 224
*.eunet.rs.



+4 Profil

icon Re: Relacija Tabela Gdje Gresim ?30.04.2009. u 15:08 - pre 182 meseci
Proguglaj i nadji Program "Kitchendraw 5.0" imas sve to sto ti radis vec gotovo
 
Odgovor na temu

[es] :: Access :: Relacija Tabela Gdje Gresim ?

Strane: 1 2

[ Pregleda: 4271 | Odgovora: 28 ] > FB > Twit

Postavi temu Odgovori

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