radisa Posted February 6, 2012 Posted February 6, 2012 Glupo (pretpostavljam) pitanje:Imam 10 tabela, 10 odgovarajućih formova, svi spakovani zajedno u Navigation form.Prvi form su ime, prezime, adresa, etc, ostalih devet su nekakvi rezultati.Kako da kažem Accessu da kad dodam prvi record (ime, prezime...), doda prazne recorde i u ostalih 9 tabela, bez obzira da li ću ih unositi odmah, kasnije ili nikad?Moram da dodajem kontrole, jel? (jer očigledno kad na status baru čuknem New (blank) record, on dodaje record samo za prvu tabelu, a ne i za ostale)Sve tabele su povezane one-to-one relacijom preko ID fielda.Nijedno pitanje nije glupo...Aj prvo da razjasnimo... Šta će ti prazni slogovi? Nije mi jasan koncept...
Skyhighatrist Posted February 6, 2012 Author Posted February 6, 2012 Aj' da preformulišem...Na prvom formu mi piše dole Current record 2/15, dakle uneo sam 15 imena.Kad se na navigation formu tabom prebacim na sledeći form, tamo mi piše Current record 1/4, jer sam te rezultate uneo samo za 4 od ovih 15 imena...Ja bi voleo da kad unesem ime&prezime, svi ostali formovi budu "uvezani" sa ovim prvim, pisalo u njima nešto ili ne... Ne znam dal' me kapiraš... Možda da žvajznem neki printscreen?
radisa Posted February 6, 2012 Posted February 6, 2012 Aj' da preformulišem...Na prvom formu mi piše dole Current record 2/15, dakle uneo sam 15 imena.Kad se na navigation formu tabom prebacim na sledeći form, tamo mi piše Current record 1/4, jer sam te rezultate uneo samo za 4 od ovih 15 imena...Ja bi voleo da kad unesem ime&prezime, svi ostali formovi budu "uvezani" sa ovim prvim, pisalo u njima nešto ili ne... Ne znam dal' me kapiraš... Možda da žvajznem neki printscreen?Ma kapiram ja tebe, al, konceptualno mi nije jasno...Znaš, nije meni problem (bar se nadam :) ) da ti objasnim kako da postaviš trigger na insert (ako to access ima, a izgleda da nema ima, pa ćemo nešto preko maske), samo ne vidim potrebu da imaš prazan slog... Zato te pitam, konceptualno, u čemu je štos imati prazne slogove? Ako tako radiš, mogao si da imaš samo jednu tabelu, sa svim rekordima i deset maski, gde ćeš unositi samo delove tabele... Ovako, u sušini nisi ništa pametnije uradio, od toga da imaš jednu tabelu, ako ćeš gurati prazne rekorde...
Skyhighatrist Posted February 6, 2012 Author Posted February 6, 2012 Na početku sam imao ideju da sve skrljam u jednu tabelu, ali sam vrrrrlo brzo (nisam definisao ni 10% polja) dobio property value is too large, i savet da sve te silne unose podelim u više tabela. OK, uradio.Ideja je da kad nađem ime na prvom formu, mogu kretanjem kroz tabove da pogledam odgovarajuće unose po drugim parametrima, bez da pravim queryje (imaću i tisuću queryja kasnije, kad unesem sve podatke).Dakle kad na prvom formu kliknem Next record, hoću da mi se i u ostalim tabovima podaci pozicioniraju na odgovarajući.Ako imam 15 imena, onda bi trebalo da imam i po 15 ostalih recorda u formovima, right?
radisa Posted February 6, 2012 Posted February 6, 2012 (edited) Na početku sam imao ideju da sve skrljam u jednu tabelu, ali sam vrrrrlo brzo (nisam definisao ni 10% polja) dobio property value is too large, i savet da sve te silne unose podelim u više tabela. OK, uradio.Ideja je da kad nađem ime na prvom formu, mogu kretanjem kroz tabove da pogledam odgovarajuće unose po drugim parametrima, bez da pravim queryje (imaću i tisuću queryja kasnije, kad unesem sve podatke).Dakle kad na prvom formu kliknem Next record, hoću da mi se i u ostalim tabovima podaci pozicioniraju na odgovarajući.Ako imam 15 imena, onda bi trebalo da imam i po 15 ostalih recorda u formovima, right?OK, idemo...Na prvoj formi nađi u property sheetu, sa desni strane FORM, pa zatim, nađi na tabu event After_update...Dodaj na njemu, event procedure, tipa CODE...Otvoriće ti se mesto da kucaš kod...Dodaj u rutinu ovo dole iz coda...ID je ono što imaš u toj formi kao ID(valjda je to kod tebe RB_protokola)ID_2 je ID druge tabele...I tako redom... dim sqlCommand as string sqlCommand="Insert into Table2(ID_2) values " & ID DoCMD.RunSQL sqlCommand sqlCommand="Insert into Table3(ID_3) values " & ID DoCMD.RunSQL sqlCommand . . . Tako ćeš dodati nove rekorde u svaku tabelu, prazne, sa istim ID-jem, koje će se desiti pošto dodaš novi record...Ovo je jako uprošćena varijanta, trebao bi pre svakog inserta, kontrolisati da li ID već postoji u drugim tabelama (mislim, znam da ne postoji, ali nije zgoreg proveriti, jer budale su inventivne)... IMaš primer na predhodnoj strani, kako to možeš uraditi... Princip je isti...Isto treba uraditi i na eventu AfterdeleteConfirmation, ako imaš mogućnost brisanja rekorda, na prvoj masci... Samo, u kodu umesto insert, pišeš sql za delete WHERE ID_2=ID_obrisani. E da, morao bi u eventu beforedeleteconfirmation, zapamtiti ID, u neku globalnu promenljivu, ID_Obrisani... Jer kad ga obriše, onda ga više nema, pa ne može da ga obriše iz drugih tabela...Ako se ne snalaziš, piši...Nadam se da je to, to... Možda nisam nešto ubo 100%, ali imaš ideju, pa probaj... :)Da bi podesio da ti na ostalim formama ti se kreće zajedno sa kretanjem ID ja na osnovnoj, treba se igrati se eventima prve forme... Pa naći koji se dešava kada pređeš na novi rekord, pa postaviti na ostalim formama taj isti u njihov ID... Ili tako nekako,ovo poslednje pišem malo napamet... Možda access zna i sam da se kreće ako ima sve ID-jeve unete u povezane tabele... Edited February 6, 2012 by radisa
Skyhighatrist Posted February 6, 2012 Author Posted February 6, 2012 Baš razmišljam o ovome: meni se u svim tabelama ID zove - ID. 'nači ne ID_table1, ID_table2 i tako dalje, nego se svi zovu isto: ID. Jel' tu zajeb u startu? Posle ću da idem dalje, samo da razjasnim ovo...
radisa Posted February 6, 2012 Posted February 6, 2012 (edited) Baš razmišljam o ovome: meni se u svim tabelama ID zove - ID. 'nači ne ID_table1, ID_table2 i tako dalje, nego se svi zovu isto: ID. Jel' tu zajeb u startu? Posle ću da idem dalje, samo da razjasnim ovo...Generalno je ne previše bitno... Može da se zove kako god hoće...Ja sam onako pisao da bude jednostavnije za praćenje... Edited February 6, 2012 by radisa
Skyhighatrist Posted February 6, 2012 Author Posted February 6, 2012 dim sqlCommand as string sqlCommand="Insert into Mojatabela(ID) values " & ID DoCMD.RunSQL sqlCommand Aj' mi onda samo razjasni na gornjem primeru: ako mi se sva ID polja zovu ID, trebalo bi da umesto Table2, Table3 ... pišem ime tabele kako se zove kod mene, a (ID) ostaje svuda (ID)?Kuka mi: Syntax error in INSERT INTO statement.
radisa Posted February 6, 2012 Posted February 6, 2012 Aj' mi onda samo razjasni na gornjem primeru: ako mi se sva ID polja zovu ID, trebalo bi da umesto Table2, Table3 ... pišem ime tabele kako se zove kod mene, a (ID) ostaje svuda (ID)?Kuka mi: Syntax error in INSERT INTO statement.KOd sam pisao iz glave, kad sednem za komp koji ima access proverći da li ima negde greška...Za 15-ak, 20 minuta minuta...
radisa Posted February 6, 2012 Posted February 6, 2012 (edited) KOd sam pisao iz glave, kad sednem za komp koji ima access proverći da li ima negde greška...Za 15-ak, 20 minuta minuta...Bio brži od 20 minuta, setio se da imam remote desktop... :)Nedostaju zagrade oko drugog ID.. sqlCommand="Insert into Mojatabela(ID) values (" & ID & ")" E da, pošto će smarati sa pitanjima, dodaj i ovo na početak i na kraj rutine Docmd.setwarnings False . . . Docmd.setwarnings True Edit: SetWarningS Edited February 6, 2012 by radisa
Skyhighatrist Posted February 6, 2012 Author Posted February 6, 2012 Hm, sad sam shvatio da ja imam (i) problem na drugom nivou: čak i kada unesem sve podatke u sve forme, kretanje kroz Next record na prvoj formi me ne pomera na next record na ostalim formama (na prvoj formi odem na record 4, a na svim ostalim stojim na 1). Kako to da rešim?
radisa Posted February 6, 2012 Posted February 6, 2012 (edited) Hm, sad sam shvatio da ja imam (i) problem na drugom nivou: čak i kada unesem sve podatke u sve forme, kretanje kroz Next record na prvoj formi me ne pomera na next record na ostalim formama (na prvoj formi odem na record 4, a na svim ostalim stojim na 1). Kako to da rešim? Mislim da bi mogao da iskoristiš event onGotFocus na svakoj formi i lost fokus na prvoj...Napraviš globalnu promenljivu ID_main kojoj dodeliš, na lost focus na prvoj formi, id koji je tamo...I onda na ostalim na ongotfocus setuješ id Sub Form_GotFocus() With Me.RecordsetClone .FindFirst "[ID] = " & ID_main If Not .NoMatch Then Me.Bookmark = .Bookmark End If End With End Sub Skinuo ovo sa neta, odavde, i malo prilagodio, trebalo bi da radi... NIsam proveravao... Edited February 6, 2012 by radisa
Skyhighatrist Posted February 6, 2012 Author Posted February 6, 2012 'Fala ti ko bratu, idem da pogledam malo, pa zatvaram radnju, bole me oči od fuckin' tabela...Kukaću sutra još, garanteka. :P
radisa Posted February 6, 2012 Posted February 6, 2012 (edited) 'Fala ti ko bratu, idem da pogledam malo, pa zatvaram radnju, bole me oči od fuckin' tabela...Kukaću sutra još, garanteka. :PMa, sve je ovo bozica jedna...Kad budeš radio sa nekom pravom bazom, pa da se raspištoljimo kao ljudi... :)Edit: ja sam tek večeras skontao da Access nema bazne trigere... Jes da sam znao da nije baš prava baza po mnogim stvarima, ali da nema trigere, ni na kraj pameti mi ne bi bilo... Čovek nauči i iz tuđih pitanja... Edited February 6, 2012 by radisa
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now