Pagal numatytuosius nustatymus galite spausdinti ataskaitas, kuriose nėra įrašų. Norėdami išspręsti šią problemą, galite naudoti makrokomandą arba "Microsoft Visual Basic for Applications" (VBA) kodą, kad aptiktumėte, ar ataskaitoje nėra įrašų, tada atšaukti spausdinimo operaciją. Šiame straipsnyje aprašoma, kaip naudoti abu būdus.
Ką norėtumėte daryti?
Tikriausiai norėsite atšaukti ataskaitos spausdinimą, jei joje nėra jokių įrašų. Pavyzdžiui, jei pradedate parduoti naują produktą, tikėtina, kad bus laikotarpis, per kurį turite registruoti visus pardavimus. Todėl turėtumėte apsvarstyti galimybę, kad kai kuriose ataskaitose gali nebūti jokių išsamių įrašų ir kad agregavimo funkcijos, pvz., funkcija Count , gali neskaičiuoti nieko. Norėdami sklandžiai apdoroti tokį atvejį, galite sukurti makrokomandą, kuri atšaukia spausdinimo užduotį. Taip pat galite įtraukti keletą eilučių kruopščiai įdėto VBA kodo, kad galėtumėte atlikti tą patį pačią funkciją. VBA yra Access naudojama programavimo kalba.
Makrokomandą arba VBA kodą įtraukiate į ataskaitos įvykio procedūrą Be Data . Access paleidžia įvykį Be duomenų kiekvieną kartą, kai paleidžiate ataskaitą, kurioje nėra įrašų. Makrokomandoje ir VBA kode, aprašomame šiame straipsnyje, rodomas atitinkamas pranešimas ir atšaukiamas ataskaitos spausdinimas, kai ataskaitoje nėra duomenų. Kai įtraukiate makrokomandą arba VBA kodą į įvykio procedūrą Be duomenų , makrokomanda arba VBA kodas paleidžiama kaskart, kai atidarote ataskaitą, kurioje nėra įrašų. Spustelėjus Gerai , kad uždarytumėte įspėjimo pranešimą, makrokomanda taip pat uždaro tuščią ataskaitą. Kai į ataskaitą įtraukiate makrokomandą arba VBA kodą, tuščia ataskaita nebus atidaryta, kai bandysite ją rodyti ataskaitos rodinyje arba maketo rodinyje, tačiau ataskaitą galite atidaryti dizaino rodinyje.
Makrokomandos naudojimas norint atšaukti spausdinimą
Šiame skyriuje aprašyta makrokomanda rodo įspėjimo pranešimą, kai bandote spausdinti tuščią ataskaitą. Kai spustelėjate Gerai , kad uždarytumėte pranešimo lauką, makrokomanda automatiškai atšaukia spausdinimo operaciją. Jei įspėjimo pranešimo neįtrauksite, jis bus rodomas taip, lyg nieko neįvyktų, kai bandysite spausdinti ataskaitą – kas tikriausiai painios ataskaitos vartotojus.
Makrokomandos kūrimas
-
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite norimą keisti ataskaitą, tada spustelėkite Dizaino rodinys.
-
Skirtuko Dizainas grupėje Rodymas/slėpimas spustelėkite Ypatybių lapas.
–arba–
Dukart spustelėkite lauką viršutiniame kairiajame arba dešiniajame ataskaitos kampe, atsižvelgdami į regiono ir kalbos parametrus.
-
Spustelėkite skirtuką Įvykis ir ypatybės lauke Be duomenų spustelėkite .
Rodomas dialogo langas Daryklės pasirinkimas .
-
Spustelėkite Makrokomandų daryklė, tada spustelėkite Gerai.
Paleidžiamas makrokomandų dizaino įrankis ir rodoma tuščia makrokomanda.
-
Makrokomandos dizaino lange esančiame išplečiamajame makrokomandų veiksmų sąraše pasirinkite Pranešimo laukas .
-
lauke Pranešimas įveskite įspėjimo pranešimo tekstą.
Pavyzdžiui, galite įvesti: Nėra įrašų, apie kuriuos reikia pranešti.
-
Pasirinktinai pakeiskite argumento reikšmę lauke Pyptelėjimas iš Taip į Ne ir sąraše Tipas pasirinkite piktogramos, kuri bus rodoma įspėjimo pranešime, tipą.
-
Lauke Pavadinimas įveskite įspėjimo pranešimo pavadinimą.
Pavyzdžiui, galite įvesti Nėra įrašų.
-
Pasirinkite makrokomandų veiksmų išplečiamąjį sąrašą po veiksmu MessageBox , tada pasirinkite CancelEvent.
-
Skirtuko Dizainas grupėje Uždarymas spustelėkite Įrašyti.
-
Skirtuko Dizainas grupėje Uždarymas spustelėkite Uždaryti. Jei rodomas įspėjimo pranešimas ir klausiama, ar norite įrašyti makrokomandos ir ataskaitos ypatybės keitimus, spustelėkite Taip, uždarykite ataskaitą, įrašykite keitimus, jei būsite paraginti, ir pereikite prie kitų veiksmų, kad ją patikrintumėte.
Makrokomandos tikrinimas
-
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite ataskaitą, kurioje yra makrokomanda, ir spustelėkite Spausdinti. Atsižvelgiant į pasirinktas parinktis, "Access" rodo įspėjimo pranešimą.
Kai spustelėjate Gerai , kad uždarytumėte pranešimą, veiksmas CancelEvent sustabdo spausdinimo operaciją. Kadangi nenurodėte jokio kito įvykio (pvz., ataskaitos atidarymo peržiūrai), ataskaita uždaroma.
Norėdami atšaukti spausdinimą, naudokite VBA kodą
Čia aprašytas VBA kodas veikia panašiai kaip ankstesniame skyriuje aprašyta makrokomanda – atidarius tuščią ataskaitą rodomas įspėjimo pranešimas, tada atšaukiamas spausdinimo veiksmas, kai uždarote įspėjimo pranešimą.
Įtraukti VBA kodą
-
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite norimą keisti ataskaitą, tada spustelėkite Dizaino rodinys.
Pastaba: Norėdami užbaigti šią procedūrą, naudokite ataskaitą, kurioje nėra įrašų.
-
Skirtuko Dizainas grupėje Rodymas/slėpimas spustelėkite Ypatybių lapas.
–arba–
Dukart spustelėkite lauką viršutiniame kairiajame arba dešiniajame ataskaitos kampe, atsižvelgdami į regiono ir kalbos parametrus.
-
Spustelėkite skirtuką Įvykis ir ypatybės lauke Be duomenų spustelėkite .
Rodomas dialogo langas Daryklės pasirinkimas .
-
Spustelėkite Kodo daryklė, tada spustelėkite Gerai.
Paleidžiama "Visual Basic" rengyklė ir rodoma tuščia įvykio procedūra.
-
"Visual Basic" rengyklėje įveskite šį kodą, kad užbaigus Report_NoData procedūra atrodytų tiksliai taip:
Private Sub Report_NoData (Cancel As Integer)
MsgBox "There are no records to report", vbExclamation, "No Records" Cancel = True End Sub -
Baigę spustelėkite Failas, tada spustelėkite Įrašyti.
-
Spustelėkite Failas, tada spustelėkite Uždaryti ir grįžti į "Microsoft Access".
-
Uždarykite atidarytą ataskaitą ir spustelėkite Taip , kad patvirtintumėte įrašymą.
-
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite ataskaitą, kurią ką tik pakeitėte, tada spustelėkite Spausdinti. Atsižvelgiant į pasirinktas parinktis, "Access" rodo įspėjimo pranešimą.
Procedūra Report_NoData naudoja funkciją MsgBox , kad būtų rodomas pranešimas Nėra įrašų ir mygtukas Gerai . Spustelėjus Gerai, procedūros eilutėje "Cancel=True" nurodoma "Access" atšaukti ataskaitą. Atšaukti yra argumentas, kuris automatiškai perduodamas įvykio procedūrai ir visada tikrinamas "Access", kai įvykio procedūra baigiama.