Thursday, February 24, 2022

Brechen Sie das Drucken eines Berichts ab, wenn er keine Datensätze enthält

Standardmäßig können Sie Berichte drucken, die keine Datensätze enthalten. Um dieses Problem zu lösen, können Sie entweder ein Makro oder VBA-Code (Microsoft Visual Basic for Applications) verwenden, um das Fehlen von Datensätzen in einem Bericht zu erkennen und dann den Druckvorgang abzubrechen. Die Schritte in diesem Artikel erläutern die Verwendung beider Techniken.

Was möchten Sie tun?

Wahrscheinlich möchten Sie das Drucken eines Berichts abbrechen, wenn er keine Datensätze enthält. Wenn Sie beispielsweise mit dem Verkauf eines neuen Produkts beginnen, gibt es wahrscheinlich einen Zeitraum, in dem Sie noch keine Verkäufe registrieren müssen. Sie sollten daher die Möglichkeit in Betracht ziehen, dass einige Ihrer Berichte keine Detaildatensätze enthalten und dass Aggregatfunktionen, wie z. B. die Zählfunktion , möglicherweise nichts zu zählen haben. Um ein solches Vorkommnis ordnungsgemäß zu handhaben, können Sie ein Makro erstellen, das den Druckauftrag abbricht. Sie können auch ein paar Zeilen sorgfältig platzierten VBA-Codes hinzufügen, um dasselbe zu tun. VBA ist die Programmiersprache, die Access verwendet.

Sie fügen entweder das Makro oder den VBA-Code zur On No Data -Ereignisprozedur des Berichts hinzu. Access löst das On No Data- Ereignis immer dann aus, wenn Sie einen Bericht ausführen, der keine Datensätze enthält. Das Makro und der VBA-Code, die in diesem Artikel beschrieben werden, zeigen eine entsprechende Meldung an und brechen das Drucken des Berichts ab, wenn dieser Bericht keine Daten enthält. Wenn Sie der On No Data- Ereignisprozedur einen Makro- oder VBA-Code hinzufügen, wird das Makro oder der VBA-Code immer dann ausgeführt, wenn Sie einen Bericht öffnen, der keine Datensätze enthält. Wenn Sie auf OK klicken, um eine der Warnmeldungen zu schließen, schließt das Makro auch den leeren Bericht. Wenn Sie entweder das Makro oder den VBA-Code zum Bericht hinzufügen, wird kein leerer Bericht geöffnet, wenn Sie versuchen, ihn in der Berichtsansicht oder Layoutansicht anzuzeigen – aber Sie können den Bericht in der Entwurfsansicht öffnen.

Verwenden Sie ein Makro, um den Druckvorgang abzubrechen

Das in diesem Abschnitt beschriebene Makro zeigt eine Warnmeldung an, wenn Sie versuchen, einen leeren Bericht zu drucken. Wenn Sie auf OK klicken, um das Meldungsfeld zu schließen, bricht das Makro den Druckvorgang automatisch ab. Wenn Sie keine Warnmeldung einfügen, sieht es so aus, als ob nichts passiert, wenn Sie versuchen, den Bericht zu drucken – etwas, das die Benutzer des Berichts wahrscheinlich verwirren wird.

Erstellen Sie das Makro

  1. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf den Bericht, den Sie ändern möchten, und klicken Sie auf Entwurfsansicht .

  2. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Einblenden /Ausblenden auf Eigenschaftenblatt .

    -oder-

    Doppelklicken Sie je nach Regions- und Spracheinstellungen auf das Kästchen in der oberen linken oder rechten Ecke des Berichts.

  3. Klicken Sie auf die Registerkarte Ereignis , und klicken Sie im Eigenschaftenfeld Bei keine Daten auf Builder-Schaltfläche .

    Das Dialogfeld Builder auswählen wird angezeigt.

  4. Klicken Sie auf Makro-Generator und dann auf OK .

    Der Makro-Designer startet und zeigt ein leeres Makro an.

  5. Wählen Sie in der Dropdown-Liste der Makroaktionen im Makroentwurfsfenster MessageBox aus der Liste aus.

  6. Geben Sie im Feld Nachricht den Text für Ihre Warnmeldung ein.

    Sie könnten beispielsweise Folgendes eingeben: Es gibt keine zu meldenden Datensätze.

  7. Ändern Sie optional den Argumentwert im Feld Signalton von Ja in Nein und wählen Sie in der Liste Typ den Symboltyp aus, der in Ihrer Warnmeldung angezeigt werden soll.

  8. Geben Sie im Feld Titel den Titel für Ihre Warnmeldung ein.

    Sie könnten beispielsweise No Records eingeben.

  9. Wählen Sie die Dropdownliste mit Makroaktionen unter der MessageBox -Aktion aus, und wählen Sie dann CancelEvent aus .

  10. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Schließen auf Speichern .

  11. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Schließen auf Schließen . Wenn eine Warnmeldung angezeigt wird und Sie fragt, ob Sie Änderungen am Makro und an der Berichtseigenschaft speichern möchten, klicken Sie auf Ja , schließen Sie Ihren Bericht, speichern Sie Ihre Änderungen, wenn Sie dazu aufgefordert werden, und fahren Sie mit den nächsten Schritten fort, um ihn zu testen.

Testen Sie Ihr Makro

  • Klicken Sie im Navigationsbereich mit der rechten Maustaste auf den Bericht, der das Makro enthält, und klicken Sie auf Drucken . Abhängig von den ausgewählten Optionen zeigt Access eine Warnmeldung an.

    Wenn Sie auf OK klicken, um die Meldung zu schließen, stoppt die CancelEvent- Aktion den Druckvorgang. Da Sie kein anderes Ereignis angegeben haben (z. B. das Öffnen des Berichts zum Anzeigen), wird der Bericht geschlossen.

Seitenanfang

Verwenden Sie den VBA-Code, um den Druckvorgang abzubrechen

Der hier beschriebene VBA-Code funktioniert ähnlich wie das im vorherigen Abschnitt beschriebene Makro – es zeigt eine Warnmeldung an, wenn Sie einen leeren Bericht öffnen, und bricht dann den Druckvorgang ab, wenn Sie die Warnmeldung schließen.

VBA-Code hinzufügen

  1. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf den Bericht, den Sie ändern möchten, und klicken Sie auf Entwurfsansicht .

    Hinweis: Um dieses Verfahren abzuschließen, verwenden Sie einen Bericht, der keine Datensätze enthält.

  2. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Einblenden /Ausblenden auf Eigenschaftenblatt .

    -oder-

    Doppelklicken Sie je nach Regions- und Spracheinstellungen auf das Kästchen in der oberen linken oder rechten Ecke des Berichts.

  3. Klicken Sie auf die Registerkarte Ereignis , und klicken Sie im Eigenschaftenfeld Bei keine Daten auf Builder-Schaltfläche .

    Das Dialogfeld Builder auswählen wird angezeigt.

  4. Klicken Sie auf Codegenerator und dann auf OK .

    Der Visual Basic-Editor wird gestartet und zeigt eine leere Ereignisprozedur an.

  5. Geben Sie den folgenden Code in den Visual Basic-Editor ein, damit die Report_NoData-Prozedur genau so angezeigt wird, wenn Sie fertig sind:

     Private Sub Report_NoData (Als Ganzzahl abbrechen)
    MsgBox "Keine Datensätze zum Melden vorhanden", vbExclamation, "Keine Datensätze"
    Abbrechen = Wahr
    End Sub
  6. Wenn Sie fertig sind, klicken Sie auf Datei und dann auf Speichern .

  7. Klicken Sie auf Datei und dann auf Schließen und zurück zu Microsoft Access .

  8. Schließen Sie den geöffneten Bericht und klicken Sie dann auf Ja , um das Speichern zu bestätigen.

  9. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf den Bericht, den Sie gerade geändert haben, und klicken Sie auf Drucken . Abhängig von den ausgewählten Optionen zeigt Access eine Warnmeldung an.

Die Report_NoData-Prozedur verwendet die MsgBox -Funktion, um die Meldung Es sind keine zu meldenden Datensätze vorhanden und eine OK -Schaltfläche anzuzeigen. Wenn Sie auf OK klicken, weist die Zeile „Cancel=True" in der Prozedur Access an, den Bericht abzubrechen. Abbrechen ist ein Argument, das automatisch an die Ereignisprozedur übergeben und immer von Access überprüft wird, wenn die Ereignisprozedur abgeschlossen ist.

Seitenanfang

No comments:

Post a Comment