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

Runtime report greška

[es] :: Access :: Runtime report greška

[ Pregleda: 1619 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.dynamic.sbb.rs.



+13 Profil

icon Runtime report greška12.09.2010. u 21:23 - pre 165 meseci
Da bih izbegao prikaz praznih izveštaja, za Report sam postavio sledeći kod:
Code:
Private Sub Report_NoData(Cancel As Integer)
    MsgBox "Nema podataka za štampu!", vbInformation, "Obaveštenje"
    Cancel = True
End Sub

To je sve u redu kada se aplikacija koristi u punoj verziji Accessa (2007 ako je bitno). Message box lepo javi da nema podataka, sa OK se potvrdi da je poruka primljena k znanju, a prazan report se ne otvara.
Ali, u runtime okruženju, nakon OK klika, javlja se i sledeća greška:



Kako da je izbegnem?
Prikačeni fajlovi
 
Odgovor na temu

banem
Kikinda

Član broj: 16619
Poruke: 583
*.dynamic.sbb.rs.



+15 Profil

icon Re: Runtime report greška12.09.2010. u 21:32 - pre 165 meseci
On Error Resume Next

u kodu koji poziva report.
Pozdrav,
Branislav
 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.dynamic.sbb.rs.



+13 Profil

icon Re: Runtime report greška12.09.2010. u 21:41 - pre 165 meseci
U tom slučaju iskoči ova greška:



U full Accessu je opet sve OK.
Prikačeni fajlovi
 
Odgovor na temu

banem
Kikinda

Član broj: 16619
Poruke: 583
*.dynamic.sbb.rs.



+15 Profil

icon Re: Runtime report greška12.09.2010. u 22:01 - pre 165 meseci
Liči mi da imaš neku drugu grešku onda.

Princip je da kad koristiš OnNoData događaj da prekineš otvaranje izveštaja (Cancel = True) onda program koji poziva izveštaj dobije od izveštaja grešku da postupak nije uspešno obavljen. Ta greška mora da se "tretira" tj. "hendluje".

Zato ono On Error Resume Next kaže "ako se desi greška, zanemari je i nastavi dalje izvršavanje" jer očekujemo da se desi i znamo koja je. To "On Error Resume Next" ne stavljaš u OnNoData već u Sub koji poziva izveštaj.

Ako ima više linija programa osim one koja poziva izveštaj u toj procedure, onda može ovako:

If Err.Number <> 2501 Then Msgbox Err.Description
Resume Next


Err.Number = 2501 je greška od izveštaja (neuspešno otvaranje).

Provereno radi tako.
Pozdrav,
Branislav
 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.dynamic.sbb.rs.



+13 Profil

icon Re: Runtime report greška12.09.2010. u 22:18 - pre 165 meseci
Ma prilično mi je jasno kako to funkcioniše, bar sam mislio da je tako, i kod sam upisao na pravom mestu, ali jednostavno nešto ne štima
Ako bazu preimenujem u .accdr ekstenziju, ili program porenem kroz "C:\Program Files\Microsoft Office 2007\Office12\Msaccess.exe" /runtime svič, greške postaju fatalne. Opet ponavljam, u punom Access okruženju, sve fercera bez problema...
 
Odgovor na temu

banem
Kikinda

Član broj: 16619
Poruke: 583
*.dynamic.sbb.rs.



+15 Profil

icon Re: Runtime report greška13.09.2010. u 00:14 - pre 165 meseci
Za Runtime program mora da je čist - sve promenljive da su definisane, sve komande ispravne, sve greške da se presreću, itd.

Za početak uradi Tools > Compile i pogledaj da li negde prijavljuje grešku. Pogledaj da li u svakom modulu na početku ima Option Explicit (svaka promenljiva mora da je definisana).

"Prljavo" programiranje radi u Accessu, ali ne radi u Runtime, zato moraš da napraviš da je program potpuno ispravan. Inače će prijaviti grešku čak i na funkciju Date() - što mi se ranije dešavalo, pa nisam mogao da se načudim, kako može Date() da je neispravno.
Pozdrav,
Branislav
 
Odgovor na temu

[es] :: Access :: Runtime report greška

[ Pregleda: 1619 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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