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

Ispitivanje radne godine(before_update) i vraćanje fokusa na to polje

[es] :: Access :: Ispitivanje radne godine(before_update) i vraćanje fokusa na to polje

[ Pregleda: 2830 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rribaric
romano ribarić
rijeka

Član broj: 31410
Poruke: 165
*.net.htnet.hr.



Profil

icon Ispitivanje radne godine(before_update) i vraćanje fokusa na to polje27.10.2004. u 20:16 - pre 237 meseci
Problem kod ispitivanja dali je uneseni datum u postavljenom kriteriju(radnoj godini).
Imam u formi "unosulaza" polje Datum_racuna-koje mora biti u zadanoj godini.Npr ako je radna godina 2004 datum mora biti u rasponu od 01.01-31.12.04,a ako je manji ili veći od radne godine program nesmije dozvoljavti daljnji upis I mora vratiti focus na to polje dokle god se ne unese aktivna godina.

Ovo bi bilo event za beforeUpdate za polje Datum_racuna-trebalo bi mi riješenje što napisati kad je datum_racuna <> od radne godine:

Private Sub Datum_racuna_BeforeUpdate(Cancel As Integer)
If FRadna(Me!Datum_racuna) Then
Exit Sub
Else
Rem Ovdje treba upisati naredbu koja bi se izvršavala ako uneseni datum nije u
Rem zadanoj godini(godina je definirana u drugoj formi).
Rem Ako nije radna pozicioniraj se na polju Me!Datum_racuna i ne dozvoli daljnji upis
End if
End Sub

U modulu sam napravio ovu proceduru za ispitivanje dali je uneseni datum u radnoj godini.

Public Function FRadna(god)
Dim db As DAO.Database, tb As DAO.Recordset
Set db = CurrentDb
Set tb = db.OpenRecordset("parametri")
tb.MoveFirst
FRadna = False
If god = tb!Godina Then FRadna = True
tb.Close
db.Close
End Function




romano
 
Odgovor na temu

rribaric
romano ribarić
rijeka

Član broj: 31410
Poruke: 165
*.net.htnet.hr.



Profil

icon Re: Ispitivanje radne godine(before_update) i vraćanje fokusa na to polje29.10.2004. u 15:23 - pre 237 meseci
Tako željno očekujem riješenje ovog problema a ono ništa.

romano
 
Odgovor na temu

TomaParComp
Goran Tomic
Paraćin

Član broj: 17923
Poruke: 118
194.106.174.*

Sajt: www.parcomp.co.yu


Profil

icon Re: Ispitivanje radne godine(before_update) i vraćanje fokusa na to polje29.10.2004. u 21:06 - pre 237 meseci
Private Sub DATUM_NABAVKE_BeforeUpdate(Cancel As Integer)
If Date - Me.DATUM_NABAVKE > 20 Then
lDobarDatum = MsgBox("Da li ste sigurni da je datum nabavke " & Me.DATUM_NABAVKE & "?", vbYesNo + vbExclamation + vbDefaultButton2, "Provera datuma!?")
If lDobarDatum <> 6 Then
Me.DATUM_NABAVKE.Undo
Cancel = True
End If
End If
End Sub

Ovako je kod mene...
 
Odgovor na temu

rribaric
romano ribarić
rijeka

Član broj: 31410
Poruke: 165
*.net.htnet.hr.



Profil

icon Re: Ispitivanje radne godine(before_update) i vraćanje fokusa na to polje29.10.2004. u 22:11 - pre 237 meseci
zAKON!Radi!To je ono što sam s nestrpljenjem čekao.
Sad ću to modificirat i koristit za neke druge stvarčice.
Puno si mi pomogao,Hvala!
Pozdrav iz Rijeke!
romano
 
Odgovor na temu

rribaric
romano ribarić
rijeka

Član broj: 31410
Poruke: 165
*.net.htnet.hr.



Profil

icon Re: Ispitivanje radne godine(before_update) i vraćanje fokusa na to polje06.11.2004. u 17:35 - pre 236 meseci
Problem s ispitivanjem radne godine i kod fokusiranja na to polje ukoliko je unesena godina van zadanog kriterija.
Ako nije unesena radna godina kod nebi smio dozvolit da se dalje vrši upis nego držat fokus na tom polju.
Private Sub Datum_racuna_BeforeUpdate(Cancel As Integer)
If FRadna(Year(Me!Datum_racuna)) Then
Exit Sub
Else
Me.Datum_racuna.Undo
Forms!Unosulaza!Datum_racuna.SetFocus
Cancel = True
End If
End Sub

Ako zadam radnu godinu 2004 a unesem recimo 12.12.03 ,nakon što se kod izvrši prikaže mi ovaj error:
"You must save the field before you execute the gotocontrol action,the gotocontrol metod,or the set focus method."

U čemu je kvaka!Dali Access omogućuje takav rad!

romano
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Ispitivanje radne godine(before_update) i vraćanje fokusa na to polje08.11.2004. u 13:53 - pre 236 meseci
Ako koristis BeforeUpdate za kontrolu, onda ti SetFocus ni ne treba. Ti se vec nalazis u toj kontroli i pokusavas da izadjes iz nje (Enter ili TAB, ili klik na neku drugu kontrolu). PRE nego sto izadjes, izvrsava BeforeUpdate za kontrolu. Ako stavis Cancel=TRUE, ponistava se update kontrole i ne mozes ni da napustis kontrolu. Access ne kaze nista, ne daje poruku o gresci, samo kursor stoji i dalje u toj kontroli. Da bi bilo manje zbunjujuce za korisnika, ubacis ti poruku i to je sve:
Code:

Private Sub DatumZavrsetka_BeforeUpdate(Cancel As Integer)
'DatumZavrsetka je ime kontrole
If Year(Me!DatumZavrsetka) <> 2004 Then
    Cancel = True
    MsgBox "Godina nije dobra!"
End If
End Sub

Ne treba ti nikakav UNDO niti SetFocus. Naravno, ovaj kod radi onda i samo onda kad uneses ili promenis vrednost u kontroli DatumZavrsetka. Ako preskocis to polje i snimis record, u tom polju ce ostati NULL. Zato treba da imas jos jednu validaciju, na nivou forme, koji se radi na BeforeUpdate za formu. Moze da izgleda na primer ovako:
Code:

Private sub frmMojaForma_BeforeUpdate(Cancel as integer)
'Proveri svaku kontrolu ponaosob:
If isnull(me!datumZavrsetka) then
    cancel=true
    MsgBox "Datum zavrsetka nedostaje!"
    me!datumZavrsetka.SetFocus
    exit sub
endif

If isnull(me!datumPocetka) then
     cancel=true
     MagBox "Datum pocetka nedostaje"
     me!datumPocetka.setfocus
     exit sub
endif

IF (me!datumZavrsetka-me!DatumPocetka)>=30
    cancel=true
   MsgBox "Datum zavrsetka ne sme biti vise od 30 dana posle datuma pocetka!"
endif

end sub


Na forminom BeforeUpdate mozes da koristis SetFocus. Opet ti ne treba Undo jer nista nije snimljeno, Cancel=TRUE je komanda Accessu da canceluje tekuci update.

Moglo je i ovako - umesto BeforeUpdate za kontrolu, da se napise funkcija koja vraca TRUE ili FALSE, zavisno od toga da li je unesena vrednost OK ili ne. Onda se ta funkcije upise u validationRule property za kontrolu. Nesto kao: =ValidateMyControl(form!MyControl).

BeforeUpdate za formu ostaje, kao jedino oruzje za validaciju koja nije uradjena na nivou tabele.

:-)
 
Odgovor na temu

rribaric
romano ribarić
rijeka

Član broj: 31410
Poruke: 165
*.net.htnet.hr.



Profil

icon Re: Ispitivanje radne godine(before_update) i vraćanje fokusa na to polje08.11.2004. u 17:47 - pre 236 meseci
E skidam ti kapu majstore ,to je to.Kad unesem datum koji je van radne godine program me ne pušta dalje.Ma milina to sam sad sriktao!
Hvala zidar ovaj kod radi i ima širu primjenu.
Sad kužim,još jedan moj problem riješen a imat će i drugi početnici koristi od ovoga!!!!
romano
 
Odgovor na temu

[es] :: Access :: Ispitivanje radne godine(before_update) i vraćanje fokusa na to polje

[ Pregleda: 2830 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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