Som standard kan du skrive ut rapporter som ikke inneholder noen poster. For å løse dette problemet kan du bruke en makro eller Microsoft Visual Basic for Applications-kode (VBA) til å oppdage fravær av poster i en rapport og deretter avbryte utskriftsoperasjonen. Trinnene i denne artikkelen forklarer hvordan du bruker begge teknikkene.
Hva vil du gjøre?
Du vil sannsynligvis avbryte utskriften av en rapport når den ikke inneholder noen poster. Hvis du for eksempel begynner å selge et nytt produkt, vil det sannsynligvis gå en periode hvor du ennå ikke har registrert salg. Du bør derfor vurdere muligheten for at noen av rapportene dine kanskje ikke inneholder detaljposter og at mengdefunksjoner, for eksempel Antall-funksjonen , kanskje ikke har noe å telle. Du kan håndtere en slik forekomst på en problemfri måte ved å opprette en makro som avbryter utskriftsjobben. Du kan også legge til noen få linjer med nøye plassert VBA-kode for å gjøre det samme. VBA er programmeringsspråket som brukes i Access.
Du legger enten til makroen eller VBA-koden i rapportens hendelsesprosedyre for ingen data . Access utløser hendelsen Ved ingen data når du kjører en rapport uten poster. Makroen og VBA-koden som beskrives i denne artikkelen, viser en passende melding og avbryter utskriften av rapporten hvis rapporten ikke inneholder data. Når du legger til en makro eller VBA-kode i hendelsesprosedyren Ved ingen data , kjøres makroen eller VBA-koden hver gang du åpner en rapport som ikke inneholder noen poster. Når du klikker OK for å lukke en av varselmeldingene, lukkes også den tomme rapporten. Når du legger til makroen eller VBA-koden i rapporten, åpnes ikke en tom rapport når du prøver å vise den i rapportvisning eller oppsettvisning, men du kan åpne rapporten i utformingsvisning.
Bruke en makro til å avbryte utskriften
Makroen som beskrives i denne delen, viser en advarsel når du prøver å skrive ut en tom rapport. Når du klikker OK for å lukke meldingsboksen, avbryter makroen automatisk utskriftsoperasjonen. Hvis du ikke inkluderer en varselsmelding, vil det vises som om det ikke skjer noe når du prøver å skrive ut rapporten, noe som sannsynligvis vil forvirre brukerne av rapporten.
Opprette makroen
- Høyreklikk rapporten du vil endre, i navigasjonsruten, og klikk Utformingsvisning.
- Klikk på Egenskapsark i Vis/skjul-gruppen på Utforming-fanen.
– eller –
Dobbeltklikk boksen øverst til venstre eller høyre i rapporten, avhengig av innstillingene for region og språk. - Klikk Hendelse-fanen, og klikk
i egenskapsboksen Ved ingen data.
Dialogboksen Velg verktøy vises. - Klikk Makroverktøy, og klikk deretter OK.
Makroutformingen starter, og det vises en tom makro. - Velg MessageBox fra listen i rullegardinlisten over makrohandlinger i makroutformingsvinduet.
- Skriv inn teksten for varselmeldingen i Melding-boksen .
Du kan for eksempel angi følgende: Det er ingen poster å rapportere. - Du kan også endre argumentverdien i lydsignalboksen fra Ja til Nei og velge hvilken type ikon du vil skal vises i varselmeldingen, fra Type-listen .
- Skriv inn tittelen på varselmeldingen i Tittel-boksen .
Du kan for eksempel angi Ingen poster. - Velg rullegardinlisten med makrohandlinger under Meldingsboks-handlingen , og velg deretter AvbrytHendelse.
- Klikk Lagre i Lukk-gruppen på Utforming-fanen.
- Klikk Lukk i Lukk-gruppen i kategorien Utforming. Hvis det vises en varselmelding med spørsmål om du vil lagre endringer i makroen og rapportegenskapen, klikker du Ja, lukker rapporten, lagrer endringene hvis du blir bedt om det, og fortsetter til neste trinn for å teste den.
Teste makroen
- Høyreklikk rapporten som inneholder makroen, i navigasjonsruten, og klikk Skriv ut. Access viser en advarsel avhengig av alternativene du velger.
Når du klikker OK for å lukke meldingen, stopper handlingen AvbrytHendelse utskriftsoperasjonen. Fordi du ikke har angitt noen annen hendelse (for eksempel åpning av rapporten for visning), lukkes rapporten.
Bruke VBA-kode til å avbryte utskriften
VBA-koden som beskrives her, fungerer omtrent som makroen som er beskrevet i forrige del. Den viser en advarselsmelding når du åpner en tom rapport, og avbryter deretter utskriftsoperasjonen når du lukker varselmeldingen.
Legge til VBA-kode
Høyreklikk rapporten du vil endre, i navigasjonsruten, og klikk Utformingsvisning.
Obs!
Du kan fullføre denne fremgangsmåten ved å bruke en rapport som ikke inneholder noen poster.
Klikk på Egenskapsark i Vis/skjul-gruppen på Utforming-fanen.
– eller –
Dobbeltklikk boksen øverst til venstre eller høyre i rapporten, avhengig av innstillingene for region og språk.Klikk Hendelse-fanen, og klikk
i egenskapsboksen Ved ingen data.
Dialogboksen Velg verktøy vises.Klikk på Kodeverktøy, og klikk deretter på OK.
Visual Basic Editor starter og viser en tom hendelsesprosedyre.Skriv inn følgende kode i Visual Basic Editor slik at den Report_NoData prosedyren vises nøyaktig slik når du er ferdig:
Private Sub Report_NoData (Cancel As Integer) MsgBox "There are no records to report", vbExclamation, "No Records" Cancel = True End SubNår du er ferdig, klikker du Fil, og deretter klikker du Lagre.
Klikk Fil, og klikk deretter Lukk og gå tilbake til Microsoft Access.
Lukk den åpne rapporten, og klikk deretter Ja for å bekrefte lagringen.
Høyreklikk rapporten som du nettopp har endret, i navigasjonsruten, og klikk Skriv ut. Access viser en advarsel avhengig av alternativene du velger.
Den Report_NoData prosedyren bruker Meldingsboks-funksjonen til å vise meldingen Det er ingen poster å rapportere og en OK-knapp . Når du klikker OK, ber linjen «Avbryt=Sann» i prosedyren Access om å avbryte rapporten. Avbryt er et argument som automatisk sendes til hendelsesprosedyren og alltid kontrolleres av Access når hendelsesprosedyren fullføres.