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

Problem sa eventom u Accessu !

[es] :: Access :: Problem sa eventom u Accessu !

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Beky86

Član broj: 182935
Poruke: 23
77.221.0.*



Profil

icon Problem sa eventom u Accessu !24.06.2008. u 22:21 - pre 192 meseci
Pozdrav !

Radi se o formi koja prikazuje sve unesene članove jedne organizacije, nije bitno . . . U toj formi samo pregledavam unešene članove, a koristim drugu formu za unos tih članova.

Nazovimo ih: "frm_clanovi" i "frm_noviClan" !

Kod forme "frm_clanovi" je izgašeno dodavanje novih članova ("allow additions") . . .

Kada dodajem članove (u formi "frm_noviClan"), imam polje status kod kojeg mi je dropdown menu, te mi izlista status: student, srednjoškolac, osnovnoškolac, drugo.
Dole imam polja: Fakultet i godina, Škola i razred i zanimanje !

* Kada unesem status: student --> 'disable' polje škola, razred i zanimanje, a 'enable' samo fakultet i godina.
* Kada unesem status: srednjoškolac ili osnovnoškolac --> 'disable' polja fakultet, godina i zanimanje, a 'enable' škola i razred.
* A, kada unesem status: drugo --> 'disable' sva ova gore polja osim zanimanja.

E, sad, u drugoj formi "frm_clanovi" ja pregledavam unešene članove.
Napravim event 'onLoad' forme da mi provjeri status člana i isto kao gore ako je student da 'enable' samo fakultet i godinu, i tako dalje...

--------------------

Šta se događa?!
Kada izbrišem posljednjeg člana u bazi, izbaci mi error:
###
"Runtime error '2427':
You entered an expression that has no value
###

Moj code izgleda ovako:
=============================
Private Sub Form_Load()
If (Me.status.Value = "Student") Then
Me.skola_faks.Enabled = True
Me.razred_godina.Enabled = True
Me.zanimanje.Value = "Null"
Me.zanimanje.Enabled = False
End If

If (Me.status.Value = "Srednjoškolac") Then
Me.skola_faks.Enabled = True
Me.razred_godina.Enabled = True
Me.zanimanje.Value = "Null"
Me.zanimanje.Enabled = False
End If

If (Me.status.Value = "Osnovnoškolac") Then
Me.skola_faks.Enabled = True
Me.razred_godina.Enabled = True
Me.zanimanje.Value = "Null"
Me.zanimanje.Enabled = False
End If

If (Me.status.Value = "Drugo") Then
Me.skola_faks.Value = "Null"
Me.razred_godina.Value = "Null"
Me.skola_faks.Enabled = False
Me.razred_godina.Enabled = False
Me.zanimanje.Enabled = True
End If
End Sub
=============================

I pošto sam izbrisao sve članove, nema rekorda na formi i baza ne vidi polje "status"?!?!?


Šta mogu da uradim kako mi se ovo ne bi dešavalo. Mislio sam da mi prilikom eventa 'onLoad' najprije provjerava je li postoji ijedan rekord u bazi, pa ako postoji da izvršava ovaj moj code, a ako ne da možda zatvori formu "frm_clanovi" i otvori formu "frm_noviClan" kako bi se odmah ponudilo unošenje novog člana.

No ne znam kako provjeriti je li postoji rekord i kako napraviti ovaj uslov !?!?
 
Odgovor na temu

domaci_a_nas
PHP developer

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



+8 Profil

icon Re: Problem sa eventom u Accessu !25.06.2008. u 00:23 - pre 192 meseci
Hm, zašto je problem da postaviš default vrednost za polje status, ili umesto Status.Value koristiš Nz(Status,"") = "Student".

Kad smo već kod toga, zašto ne bi koristio combo box sa row source : 1;Osnovna Škola;2;Srednja Škola;3;Fakultet / Visoka Škola gde bi row source type bio Value List i Column Count = 2 i skrivenom prvom kolonom.

Mislim da će ti biti lakše u radu a i tabela će zauzimati manje prostora na disku. Sem toga, lakše je u kodu kucati Status = 1 nego Status = Osnovna škola.
Ozbiljan i odgovoran mladić
 
Odgovor na temu

Beky86

Član broj: 182935
Poruke: 23
77.221.0.*



Profil

icon Re: Problem sa eventom u Accessu !25.06.2008. u 01:33 - pre 192 meseci
Hvala na savjetima!

Ja sam u biti tek "početnik", nemam puno iskustva s bazama ni s VBA. Da poznajem bolje VBA, palo bi mi na pamet više načina za implementaciju svega ovoga . . .

Meni ne treba default vrijednost za polje status.
Ja u biti želim da prilikom loada forme "frm_clanovi", da se odmah zaključaju polja koja nemaju veze sa unesenim članom i stavi im se vrijednost 'Null', tj. ako je osoba student, zaključaj polja škola i razred, te zanimanje . . .
A imam ja i event 'afterUpdate' status polja --> ako je npr. član prešao iz srednje škole na fakultet, ja mu samo promijenim "status" u 'student' i dole se ključaju polja: škola, razred i zanimanje, te im se vrijednost postavlja na 'Null', a polje fakultet i godina se otključavaju.

Znači onaj moj code se pokreće prilikom loada forme. On provjerava automatski status.value, a kada nema rekorda u tabeli, odnosno na formi, izbaci onu grešku !!

E, da ja ne bi mijenjao sada kompletan dizajn baze, treba mi code da postavim uslov kada se pali forma --> da provjeri prvo je li ima rekorda, ako ima da radi onaj moj code, a ako nema da preskoči, ili čak da pokrene formu za unos članova.

 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Problem sa eventom u Accessu !25.06.2008. u 06:17 - pre 192 meseci
Citat:
Beky86: ......E, da ja ne bi mijenjao sada kompletan dizajn baze, treba mi code da postavim uslov kada se pali forma --> da provjeri prvo je li ima rekorda, ako ima da radi onaj moj code, a ako nema da preskoči, ili čak da pokrene formu za unos članova.

Pošto nemam primer, ne mogu da tvrdim ali probaj ovako.
Ovaj tvoj kod koji si napisao u prvom postu treba da postavš na događaj On Curent (kada pređeš na drugi zapis i on postane tekući zapis) forme "frm_clanovi"

Pri učitavanju forme "frm_clanovi", na događaj On Load, trebalo bi da proveriš broj rekorda u tabeli. Recimo ovako, pod uslovom da je DAO 3.6 metodologija uključena u VBA editor, Tools, References.
Code:

Dim Baza As Database          '  dmenzionisanje baze
Dim rs  As Recordset            ' dimenzionisanje reordseta

Set Baza = CurrentDb()               '  setovanje baze
Set rs = Baza.OpenRecordset("NAZIV_TVOJE_TABELE", dbOpenDynaset)            ' setovanje recordeseta


If rs.RecordCount > 0 Then                  ' ako je broj recorda veći od nule
        rs.MoveFirst                              'otidi na prvi zapis  
    Else
       MsgBox "Nema podataka u tabeli", vbCritical, "Paznja"
       DoCmd.OpenForm "frm_noviClan"                        ' otvara novu formu   
 End If

rs.Close                            ' zatvara recordset
Set baza = Nothing             'skida referencu sa baze

 
Odgovor na temu

Beky86

Član broj: 182935
Poruke: 23
77.221.0.*



Profil

icon Re: Problem sa eventom u Accessu !25.06.2008. u 12:00 - pre 192 meseci
Kolega 'Getsbi' hvala !

Problem sam riješio jednostavno što sam umjesto 'onLoad' event-a stavio 'onCurrent' i nakon što pobrišem zadnji rekord baza to shvati i ne puca onaj moj code :)
Golemo !!!

Hvala svima, pozdrav !!!
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: Problem sa eventom u Accessu !25.06.2008. u 13:36 - pre 192 meseci
Citat:
E, da ja ne bi mijenjao sada kompletan dizajn baze, treba mi code da postavim uslov kada se pali forma --> da provjeri prvo je li ima rekorda, ako ima da radi onaj moj code, a ako nema da preskoči, ili čak da pokrene formu za unos članova.

A da ipak razmislis o promeni dizjna baze? Ako nije dobar, nije dobar i nikakav kod ga ence uciniti boljim. A bice potrebno sve vise i vise koda da potignes ono sto bi samo od sebe bilo tu da je baza dizajnirana kako treba.

Ako je ovo primer za vezbu, bar si naucio cemu sluzi OnCurrent a cemu OnLoad. Nije dobro da od pocetka pravis los dizajn baza i nadas se da ces kasnije programiranjem ispraviti greske dizajna.

 
Odgovor na temu

Beky86

Član broj: 182935
Poruke: 23
77.221.0.*



Profil

icon Re: Problem sa eventom u Accessu !25.06.2008. u 15:03 - pre 192 meseci
U pravu si ti.

Međutim, evo, greška je ispravljena, a ja sam zadovoljan, postigao sam što sam naumio, baza je gotova i posao završen !!

Svakako za buduće poteze namjeravam sagledati sve svoje pogreške i krenuti boljom strategijom i nadam se sa više znanja !!

Hvala na savjetima, ovo sam usput radio, nemam vremena ispiti sada :)

Pozz svima !
 
Odgovor na temu

[es] :: Access :: Problem sa eventom u Accessu !

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

Postavi temu Odgovori

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