Podrazumevano možete da odštampate izveštaje koji ne sadrže zapise. Da biste rešili ovaj problem, možete da koristite makro ili Microsoft Visual Basic for Applications (VBA) kôd da biste otkrili odsustvo zapisa u izveštaju, a zatim otkazali operaciju štampanja. Koraci u ovom članku objašnjavaju kako da koristite obe tehnike.
Šta želite da uradite?
Verovatno želite da otkažete štampanje izveštaja kada ne sadrži nijedan zapis. Na primer, ako počinješ da prodajete novi proizvod, verovatno postoji vremenski period gde još uvek niste registrovali bilo koju prodaju. Zato bi trebalo da razmotrite mogućnost da neki od vaših izveštaja možda ne sadrže detaljne zapise i da agregatne funkcije, kao što je funkcija Count , možda nemaju ništa da broje. Da biste dostojanstveno postupali u tome, možete da kreirate makro koji otkazuje posao štampanja. Takođe možete da dodate nekoliko redova pažljivo postavljenog VBA koda koji će uraditi isto. VBA je programski jezik koji Pristup koristi.
Možete da dodate makro ili VBA kôd u izveštaj o proceduri događaja " bez dada" . Pristup ne pokreće događaj na koji se ne nalaze podaci kada pokrećete izveštaj koji nema zapise. Makro i VBA kôd opisan u ovom članku prikazuje odgovarajuću poruku i otkazuju štampanje izveštaja kada taj izveštaj ne sadrži podatke. Kada dodate makro ili VBA kôd u stavku nije procedura događaja podataka , MAKRO ili VBA kôd se pokreće svaki put kada otvorite izveštaj koji ne sadrži zapise. Kada kliknete na dugme u redu da biste zatvorili poruku obaveštenja, makro zatvara i prazan izveštaj. Kada u izveštaj dodate makro ili VBA kôd, prazan izveštaj se neće otvarati kada pokušate da ga prikažete u prikazu izveštaja ili prikazu rasporeda – ali izveštaj možete da otvorite u prikazu dizajna.
Korišćenje makroa za otkazivanje štampanja
Makro opisan u ovom odeljku prikazuje poruku obaveštenja kada pokušate da odštampate prazan izveštaj. Kada kliknete na dugme u redu da biste zatvorili okvir za poruku, makro automatski otkazuje operaciju štampanja. Ako ne uključujete poruku obaveštenja, ona će se pojaviti kao da se ništa ne dešava kada pokušate da odštampate izveštaj – nešto što će verovatno zbuniti korisnike izveštaja.
Kreiranje makroa
-
U oknu za navigaciju kliknite desnim tasterom miša na izveštaj koji želite da promenite i izaberite stavku Prikaz dizajna.
-
Na kartici Dizajn, u grupi Prikazivanje/skrivanje izaberite stavku List sa svojstvima.
– ili –
Kliknite dvaput na polje u gornjem levom ili desnom uglu izveštaja, u zavisnosti od regionalnih i jezičkih postavki.
-
Kliknite na karticu događaj i u polju za potvrdu ne izaberite stavku
.
Pojaviće se dijalog Izbor alatke za izradu .
-
Izaberite stavku Izrada makroa, a zatim kliknite na dugme u redu.
Pokreće se dizajner makroa i prikazuje prazan makro.
-
Na padajućoj listi radnje makroa u prozoru dizajn makroa, sa liste izaberite stavku poruka .
-
u polju poruka otkucajte tekst obaveštenja o obaveštenju.
Na primer, možete da unesete sledeće: Nema zapisa za izveštavanje.
-
Opcionalno, promenite vrednost parametra u polju bip sa " da " na " ne " i, na listi tip , izaberite tip ikone koju želite da prikažete u poruci upozorenja.
-
U polju naslov Otkucajte naslov za poruku obaveštenja.
Na primer, možete da unesete zapise bez zapisa.
-
Izaberite padajuću listu radnje makroa ispod radnje " poruka ", a zatim izaberite stavku " CancelEvent".
-
Na kartici Dizajn , u grupi Zatvori kliknite na dugme Sačuvaj.
-
Na kartici Dizajn, u grupi Zatvori, kliknite na dugme Zatvori. Ako se pojavi poruka obaveštenja i pita vas da li želite da sačuvate promene u makrou i svojstvu izveštaja, kliknite na dugme da, zatvorite izveštaj, sačuvajte promene ako vam to bude zatraženo i pređite na sledeće korake da biste ga testirali.
Testiranje makroa
-
U oknu za navigaciju kliknite desnim tasterom miša na izveštaj koji sadrži makro i kliknite na dugme Odštampaj. U zavisnosti od opcija koje ste odabrali, Access prikazuje poruku obaveštenja.
Kada kliknete na dugme u redu da biste zatvorili poruku, radnja CancelEvent zaustavlja operaciju štampanja. Izveštaj se zatvara zato što niste naveli nijedan drugi događaj (na primer, otvaranje izveštaja za pregled).
Korišćenje VBA koda za otkazivanje štampanja
VBA kôd opisan ovde funkcioniše kao makro opisan u prethodnom odeljku – prikazuje poruku obaveštenja kada otvorite prazan izveštaj, a zatim otkazuje operaciju štampanja kada zatvorite poruku obaveštenja.
Dodavanje VBA koda
-
U oknu za navigaciju kliknite desnim tasterom miša na izveštaj koji želite da promenite i izaberite stavku Prikaz dizajna.
Napomena: Da biste dovršili ovu proceduru, koristite izveštaj koji ne sadrži zapise.
-
Na kartici Dizajn, u grupi Prikazivanje/skrivanje izaberite stavku List sa svojstvima.
– ili –
Kliknite dvaput na polje u gornjem levom ili desnom uglu izveštaja, u zavisnosti od regionalnih i jezičkih postavki.
-
Kliknite na karticu događaj i u polju za potvrdu ne izaberite stavku
.
Pojaviće se dijalog Izbor alatke za izradu .
-
Izaberite stavku izrada koda, a zatim kliknite na dugme u redu.
Pokreće se Visual Basic Editor i prikazuje praznu proceduru događaja.
-
Otkucajte sledeći kôd u Visual Basic Editoru kako bi se procedura "Report_NoData" pojavila identična kada završite:
Private Sub Report_NoData (Cancel As Integer)
MsgBox "There are no records to report", vbExclamation, "No Records"
Cancel = True
End Sub -
Kada završite, izaberite stavku datoteka, a zatim kliknite na dugme Sačuvaj.
-
Izaberite stavku datoteka, a zatim kliknite na dugme Zatvori i vrati se u Microsoft Access.
-
Zatvorite otvoreni izveštaj, a zatim kliknite na dugme da da biste potvrdili čuvanje.
-
U oknu za navigaciju kliknite desnim tasterom miša na izveštaj koji ste upravo promenili i izaberite stavku Odštampaj. U zavisnosti od opcija koje ste odabrali, Access prikazuje poruku obaveštenja.
Procedura Report_NoData koristi funkciju MsgBox da bi se prikazala poruka i dugme u redu . Kada kliknete na dugme u redu, red "Otkaži = TRUE" u proceduri upućuje Access za otkazivanje izveštaja. Otkaži je argument koji se automatski prosleđuje proceduri događaja i Access je uvek proverava kada se procedura događaja završi.