Domyślnie można drukować raporty, które nie zawierają rekordów. Aby rozwiązać ten problem, możesz użyć makra lub kodu języka Microsoft Visual Basic for Applications (VBA), aby wykryć brak rekordów w raporcie, a następnie anulować operację drukowania. W krokach opisanej w tym artykule wyjaśniono, jak używać obu technik.
Co chcesz zrobić?
Drukowanie raportu można anulować, jeśli nie zawiera on żadnych rekordów. Jeśli na przykład zaczynasz sprzedawać nowy produkt, prawdopodobnie miej czas na zarejestrowanie sprzedaży. Dlatego warto rozważyć możliwość, że niektóre raporty nie będą zawierać żadnych rekordów szczegółowych, a funkcje agregowane, takie jak funkcja Count, mogą nie mieć nic do zliczenia. Aby pomyślnie obsłużyć takie wystąpienie, możesz utworzyć makro anulujące zadanie drukowania. Możesz również dodać kilka wierszy starannie umieszczonego kodu VBA, aby zrobić to samo. VBA to język programowania używany Access języka.
Do procedury zdarzenia W dniu no Da możesz dodać makro lub kod języka VBA. Access wyzwala zdarzenie On No Data (Wł. brak danych) po uruchomieniu raportu bez rekordów. Makro i kod VBA opisane w tym artykule wyświetlają odpowiedni komunikat i anulują drukowanie raportu, jeśli ten raport nie zawiera żadnych danych. Po dodaniu makra lub kodu VBA do procedury zdarzenia Wł. brak danych makro lub kod VBA jest uruchamiane przy każdym otwarciu raportu, który nie zawiera żadnych rekordów. Po kliknięciu przycisku OK w celu zamknięcia jednego z komunikatów alertów makro zamyka również pusty raport. Po dodaniu makra lub kodu VBA do raportu podczas próby wyświetlenia go w widoku raportu lub układu nie zostanie otwarty pusty raport, ale raport można otworzyć w widoku projektu.
Anulowanie drukowania za pomocą makra
Makro opisane w tej sekcji wyświetla komunikat alertu podczas próby wydrukowania pustego raportu. Kliknięcie przycisku OK w celu zamknięcia okna komunikatu spowoduje automatyczne anulowanie operacji drukowania makra. Jeśli nie dołączysz komunikatu alertu, podczas próby wydrukowania raportu będzie wyświetlany komunikat, że nic się nie dzieje — co prawdopodobnie myli użytkowników raportu.
Tworzenie makra
-
W okienku nawigacji kliknij prawym przyciskiem myszy raport, który chcesz zmienić, a następnie kliknij polecenie Widok projektu.
-
Na karcie Projektowanie w grupie Pokazywanie/ukrywanie kliknij przycisk Arkusz właściwości.
— lub —
Kliknij dwukrotnie pole w lewym górnym lub prawym rogu raportu, w zależności od ustawień regionalnych i językowych.
-
Kliknij kartę Zdarzenie, a następnie w polu właściwości Przy wartości brak danych kliknij
.
Zostanie wyświetlone okno dialogowe Wybieranie konstruktora.
-
Kliknij pozycję Konstruktor makr,a następnie kliknij przycisk OK.
Zostanie uruchomiony projektant makr, w którym zostanie wyświetlone puste makro.
-
Z listy rozwijanej akcji makr w oknie projektu makra wybierz z listy pole komunikatu.
-
w polu Wiadomość wpisz tekst wiadomości alertu.
Można na przykład wprowadzić następujące informacje: Nie ma rekordów do zgłoszenia.
-
Opcjonalnie zmień wartość argumentu w polu Sygnał dźwiękowy z Tak na Nie i z listy Typ wybierz typ ikony, która ma być wyświetlana w komunikacie alertu.
-
W polu Tytuł wpisz tytuł wiadomości alertu.
Można na przykład wprowadzić wartość Brak rekordów.
-
Wybierz listę rozwijaną akcji makr pod akcją Skrzynka komunikatów, a następnie wybierz pozycję AnulujSadanie.
-
Na karcie Projektowanie w grupie Zamykanie kliknij przycisk Zapisz.
-
Na karcie Projektowanie w grupie Zamykanie kliknij pozycję Zamknij. Jeśli zostanie wyświetlony komunikat alertu z pytaniem, czy chcesz zapisać zmiany makra i właściwości raportu, kliknij przycisk Tak,zamknij raport, jeśli zostanie wyświetlony monit, zapisz zmiany i przejdź do następnych kroków, aby go przetestować.
Testowanie makra
-
W okienku nawigacji kliknij prawym przyciskiem myszy raport zawierający makro, a następnie kliknij polecenie Drukuj. W zależności od wybranej opcji program Access wyświetli komunikat alertu.
Po kliknięciu przycisku OK w celu zamknięcia wiadomości akcja AnulujAvent zatrzyma operację drukowania. Ponieważ nie określono żadnego innego zdarzenia (takiego jak otwarcie raportu w celu wyświetlenia), raport zostanie zamknięte.
Anulowanie drukowania przy użyciu kodu VBA
Kod VBA opisany w tym miejscu działa podobnie do makra opisanego w poprzedniej sekcji — po otwarciu pustego raportu jest wyświetlany komunikat alertu, a następnie operacja drukowania jest anulowana po zamknięciu komunikatu alertu.
Dodawanie kodu VBA
-
W okienku nawigacji kliknij prawym przyciskiem myszy raport, który chcesz zmienić, a następnie kliknij polecenie Widok projektu.
Uwaga: Do wykonania tej procedury użyj raportu, który nie zawiera żadnych rekordów.
-
Na karcie Projektowanie w grupie Pokazywanie/ukrywanie kliknij przycisk Arkusz właściwości.
— lub —
Kliknij dwukrotnie pole w lewym górnym lub prawym rogu raportu, w zależności od ustawień regionalnych i językowych.
-
Kliknij kartę Zdarzenie, a następnie w polu właściwości Przy wartości brak danych kliknij
.
Zostanie wyświetlone okno dialogowe Wybieranie konstruktora.
-
Kliknij pozycję Konstruktor kodu,a następnie kliknij przycisk OK.
Zostanie uruchomiony Edytor Visual Basic i zostanie wyświetlona pusta procedura zdarzenia.
-
Wpisz następujący kod w Edytorze Visual Basic, aby po Report_NoData procedura wyglądała dokładnie tak:
Private Sub Report_NoData (Cancel As Integer)
MsgBox "There are no records to report", vbExclamation, "No Records"
Cancel = True
End Sub -
Po zakończeniu kliknij pozycję Plik,a następnie kliknij pozycję Zapisz.
-
Kliknij pozycję Plik,a następnie kliknij pozycję Zamknij i wróć do programu Microsoft Access.
-
Zamknij otwarty raport, a następnie kliknij przycisk Tak, aby potwierdzić zapisanie.
-
W okienku nawigacji kliknij prawym przyciskiem myszy zmieniony raport, a następnie kliknij polecenie Drukuj. W zależności od wybranej opcji program Access wyświetli komunikat alertu.
W Report_NoData procedura korzysta z funkcji MsgBox w celu wyświetlenia komunikatu Brak rekordów i przycisku OK. Po kliknięciu przycisku OKwiersz "Anuluj=Prawda" w procedurze nakazuje programowi Access anulowanie raportu. Cancel to argument, który jest automatycznie przekazywany do procedury zdarzenia i jest zawsze sprawdzany przez program Access po zakończeniu procedury zdarzenia.