[ rribaric @ 29.11.2004. 21:16 ] @
Evo završio sam obračune (kraj mjeseca) i sad opet imam vremena za nastavak projekta Zvan Access!
Jedno pitanje!Vjerojatno već negdje n a ovom forumu postoji odgovor ali ga nemogu nać!
Imam ovakvu situaciju.
Jedam listbox koji ima svoj rowsource.Tipke su prihvati ,edit,delete,unos.
Problem se javlja kada se ne aktivira niti jedan podatak(član iz list boxa)koji se želi mjenjati,brisati ili prihvatiti tata mi javlja poruku na engleskom «The expresion on Click................................»
Ja bi to preveo i u okviru mesage boxa upozorio korisnika da nije odabran zapis(član).Na koji način da prevedem poruku i stavim upozorenje.
Ima li ko kakav prijedlog???

Ovo je primjer coda za potvrdu brisanja:
Public Function fpotvrdi()

On Error GoTo Err_fpotvrdi

DoCmd.RunCommand acCmdDeleteRecord

DoCmd.Close acForm, Me.Name, acSaveNo
Forms!artK_maska!.Refresh

exit_fpotvrdi:
Exit Function

Err_fpotvrdi:
MsgBox Err.Description
Resume exit_fpotvrdi
End Function

[ izonic @ 30.11.2004. 00:50 ] @
Sve greske i upozorenja mozes presresti na on error forme.
Naravno tu ces upisati svoje upozorenje ili ga odvesti na svoju tabelu gresaka
ako je imas a err.number postaviti na nulu kao i response ako nije 0.
[ Simke @ 30.11.2004. 06:11 ] @
U error handler-u postavi neka proveri broj greske i ako je to ta odredjena greska onda nemoj da imas ono MsgBox Err.Description nego postavi svoju poruku.
[ Zidar @ 30.11.2004. 13:35 ] @
Simke i Zonic su ti dali 100% korektan savet. U praksi to bi izgledalo ovako:

Pogledaj u Top temi Tips and Tricks pricu o Error handling. Za pocetak, malo modifikuj tvoju funkciju, dodoaj Err.Number, ovako:
Code:

Public Function fpotvrdi()

On Error GoTo Err_fpotvrdi

DoCmd.RunCommand acCmdDeleteRecord

DoCmd.Close acForm, Me.Name, acSaveNo
Forms!artK_maska!.Refresh

exit_fpotvrdi:
Exit Function

Err_fpotvrdi:
MsgBox "Greska broj " & Err.number & vbcrlf & Err.Description & vbcrlf & "u funkciji fpotvrdi()"
'Poruka ce da javi broj greske a mne samo tekst.
Resume exit_fpotvrdi
End Function

Onda proizvedi tu gresku. Poruka ce ti javiti brioj greske. Zapiis ga na papir. onda ponovo modifikuj funkciju, ovako:
Code:

Public Function fpotvrdi()

On Error GoTo Err_fpotvrdi

DoCmd.RunCommand acCmdDeleteRecord

DoCmd.Close acForm, Me.Name, acSaveNo
Forms!artK_maska!.Refresh

exit_fpotvrdi:
Exit Function

Err_fpotvrdi:
select case err.number
case 315  'recimo da je tvoj broj greske 315
'ili ne radis nista ili stavis svoju poruku:
MsgBox "Greska 315, niste izabrali nista sa list boxa. Ako to ne uradite sledeci put' kompjuter ce da eksplodira"
case else
MsgBox "Greska broj " & Err.number & vbcrlf & Err.Description & vbcrlf & "u funkciji fpotvrdi()"
end select
'Poruka ce da javi broj greske a mne samo tekst.
Resume exit_fpotvrdi
End Function


Nazalost, postoje i greske koje ne mozes uhvatiti sa error handling. To su greske koje nastaju ne zbog koda, nego zbog podataka. Na primer, imas formu za unos i neko polje ima UNIQUE indeks - dozvoljava samo jedinstvene vrednosti. Greskom ukucas nesto sto vec postoji u tom polju. Error handler to ne hvata jer je kod OK. Za te slucajeve imas formin OnError event. U helpu imas primer koji pokriva 99% slucajeva - cini mi se da pokriva problem duplikata i problem referential integrity (kad probas na strani vise da uneses nesto sto nemas na starni 1).

Posto je formin Error event spomenuo Zonic bilo bi lepo da nam on o tome ostavi jedan post u Tips and Tricks ili bazi znanja, da ne bude da se samo Simke i Zidar prave pametni

[ rribaric @ 01.12.2004. 21:09 ] @
Dečki uspio sam svladati ovo s greškama(makar u onoj mjeri koliko mi je za sad potrebno)Hvala na odgovorima.
Također sam puno toga našao na temi
Access - Tehnike programiranja
Proučio sam i primjenio
Rukovanje Run Time greskama od zidara

Kao i Error Handling - Drugi deo (Error Logging) od simkea
Čak sam uspio osposobit tu tablicu gdje mi zapisuje greške....ali da ne dužim sve je u toj temi pa ko voli nek izvoli meni je pomogla!

Iako mi je žao što je autor stao na recordsetima-ali se nadam da će uskoro biti i nastavak!