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

azuriranja izracunatog polja?

[es] :: Access :: azuriranja izracunatog polja?

[ Pregleda: 1992 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darkog
Obrenovac

Član broj: 82291
Poruke: 147
*.beogrid.net.



+1 Profil

icon azuriranja izracunatog polja?30.11.2006. u 16:26 - pre 192 meseci
Hocu da azuriram polje tabele sa vrednoscu koja se nalazi na jednom obrascu.

objasnjenje:

Tabela "tblotprema" sadrzi polje vrednost koje hocu da azuriram. Obrazac "frmOtprema" sadrzi polje iznos cija vrednost nakon izracunavanja treba se upise u tabelu "tblOtprema".
Na after update obrasca "frmotprema" sam napisao nesto ovako:

Private sub form_Afterupdate()

dim rst as new adodb.recordset
dim sql as string

sql = "Select vrednost.otpremaID From tblOtprema Where OtpremaID = " & me.otpremaID
rst.open sql,currentproject.connection,opendinamic,lockoptimistic

if not rst.eof then
rst!vrednost = me.iznos ' azuriranje polja tabele
end if

rst.close
set rst = nothing

end sub

Ovo "radi".
Medjutim, sta se desava kada se otvori postojeci zapis obrasca "frmOtprema" pa se izmeni neka stavka racuna?
Nista, jer se ne desi dogadjaj afterUpdate obrasca "frmOtprema", pa se polje "vrednost" u tabeli ne azurura.

Postoji li neki drugi nacin?



 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: azuriranja izracunatog polja?30.11.2006. u 18:00 - pre 192 meseci
Naravno da postoji Izbacis polje Iznos iz tabele tblOtprema i izracunas ga kad god ti zatreba, kverijem ili kodom.

Koliko puta smo ti rekli da se izracunata polja ne cuvaju u tabelama, nego se izracunavaju kverijima ili na neki drugi nacin, kad ti zatrebaju? Jedan od razloga jeste da ne bi upadao u ovakve situacije. Vidis koliko moras da radis i da se trudis, a ono nece pa nece. Samo zato sto ti je pristup pogresan u startu.

Citat:
Medjutim, sta se desava kada se otvori postojeci zapis obrasca "frmOtprema" pa se izmeni neka stavka racuna?
Nista, jer se ne desi dogadjaj afterUpdate obrasca "frmOtprema", pa se polje "vrednost" u tabeli ne azurura.


Ako bas hoces naopako onda probaj ovo:
Ti verovatno imas neku subformu na frmOtprema, gde sti stoje stavke racuna. Onda imas na dnu glavne forme polje Iznos, koje je u stvari suma necega po stavkama. I za izracunavanje te sume treba ti neki kod, koji nekad radi a nekad ne radi. Morao bi da imas na subformi na after update da ti se polje frmOtprema.iznos azurirakad god nesto promenis u nekoj stavki. Pa onda da recimo na FormClose odradis azuriranje polja Iznos u tabeli tblOtprema. I tako ce ti se tblOtprema azurirati kad god zatvoris formu frmOtprema. Ali sta ce biti ako frmOtprema dopusta da ides sa racuna na racun, bez zatvaranja forme? Onda Zidarev predlog nije dovoljan ;-) Treba dakle naci neki event koji se desava pri prelazu sa rekorda na rekord. A to je Form_OnCurrent. Tada ce se azuriranja desiti kad predjes sa rekorda na rekord u glavnoj formi. I desice se kad prvi put otvoris formu, iako nema sta da se azurira. Ali nece se desiti kad napokon zatvoris formu. Zato moras da imas tvoj kod i na OnCurrent i na FormClose. To znaci, pises funkciju koja odradjuje azuriranje, a onda je pozivas sa dva eventa. Plus funkcija na subformi, za azuriranje kontrole na formi. Zamrseno? Jeste, ne kazem da nije, ali to dobijes kad prekrsis osnovne principe pa onda krpis kako znas i umes. Ne govorim dzabe u poslednje vreme da ovakve stvari sebi mogu da dozvole samo veoma dobri programeri, koji ce ocas posla da napisu sav ovaj kod i da sve to usklade. Takvi su retki i grehota je da razbacuju vreme i talenat pisuci kod koji u stvari i ne treba pisati uopste.
 
Odgovor na temu

darkog
Obrenovac

Član broj: 82291
Poruke: 147
*.smin.sezampro.yu.



+1 Profil

icon Re: azuriranja izracunatog polja?30.11.2006. u 21:03 - pre 192 meseci
Nisam siguran da si bas meni to rekao:) Bilo kako bilo znam da se u tabelama ne cuvaju podaci za koje se zna da ce se relativno brzo menjati i ovo mi je prvi put da tako radim jer mi taj podatak treba za jedan upit i to bas iz te tabele, a ne kombinacija sa tabelom za stavke racuna (iznos = kolicina * cena). Hvala na savetu napravio sam jednu proceduru koju pozivam sa oncurrent i onClose event-a i radi ali verovatno cu bataliti sve ovo i pokusati bez ovakvih zavlacenja.
 
Odgovor na temu

[es] :: Access :: azuriranja izracunatog polja?

[ Pregleda: 1992 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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