Mit diesem Trick drucken Sie nur den aktuellen Datensatz aus einem geöffneten Formular

21.06.2019

Ein Bericht ist bei Access 97 das richtige Mittel zum Ausdruck von Daten. Einziger Haken: Ein Bericht druckt stets alle Daten aus der zugrundeliegenden Tabelle oder Abfrage aus. Um nur mal eben die Bestellung auszudrucken, die gerade auf dem Bildschirm angezeigt wird, scheint ein Bericht daher nicht so ganz geeignet zu sein. So sieht es zumindest auf den ersten Blick aus. Bei genauerem Hinschauen stellt sich schnell heraus, dass Sie Berichte über sogenannte Datenfilter beeinflussen können.

Daten aus der Quelle

Welche Daten ein Bericht ausdruckt, bestimmt die Eigenschaft Datenherkunft. Um den Wert dieser Eigenschaft einzusehen, öffnen Sie den Bericht in der Entwurfsansicht. Im Eigenschaftenfenster finden Sie die Datenherkunft dann im Register Daten an oberster Stelle. Hier steht entweder der Name einer Tabelle, der Name einer Abfrage oder eine SQL-Anweisung.

Filter für die Quelle

Um die Daten des Berichts einzuschränken, können Sie natürlich die Datenquelle verändern. Dieses Verfahren hat jedoch den Nachteil, dass Sie den Berichtsentwurf für jeden einzeln auszudruckenden Datensatz ändern müssen. Ein besseres Verfahren besteht deshalb darin, die Datenherkunft durch einen Filter einzuschränken. Die Angabe eines solchen Filters erfolgt am besten in einer VBA-Anweisung, die von einer Schaltfläche aufgerufen wird. Am besten ordnen Sie diese Schaltfläche in dem Formular an, dessen aktueller Datensatz ausgedruckt werden soll.

Schaltfläche für’s Drucken

Mit den folgenden Schritten erstellen Sie eine Schaltfläche, die nur den aktuellen Datensatz ausdruckt.

  1. Öffnen Sie Ihr Formular in der Entwurfsansicht.
  2. Legen Sie eine Schaltfläche mit der Beschriftung &Drucken an.
  3. Klicken Sie die Schaltfläche mit der rechten Maustaste an, und wählen Sie den Befehl Ereignis aus dem Kontextmenü. Geben Sie im Modulfenster folgende VBA-Anweisung für das Ereignis Beim Klicken ein:
  4. DoCmd.OpenReport "Kunden", View:=acViewPreview, WhereCondition:="KundenNr = '" & Me!KundenNr & "'"
Damit die Schaltfläche richtig funktioniert, müssen Sie statt MeinBericht natürlich den Namen Ihres Berichts eingeben. Mit dem Parameter WhereCondition geben Sie eine Bedingung an, die Access beim Ausdruck des Berichts überprüft. Im Beispiel ist die Angabe der einfachen Anführungszeichen notwendig, da die Kundennummer hier als Textfeld gespeichert ist. Durch den Filter druckt Access nur die Datensätze, bei denen die angegebene Bedingung erfüllt ist.

Der Trick mit dem Primärschlüssel

Das Beispiel geht davon aus, daß die KundenNr der Primärschlüssel in der Datenquelle ist und gleichzeitig ein gleichnamiges Steuerelement im aktuellen Formular existiert. Deshalb wird hier nur der Datensatz ausgedruckt, dessen Kundennummer mit der im Formular übereinstimmt. Da dieses Feld der Primärschlüssel ist, kann es sich nur um einen einzigen, nämlich den aktuellen Datensatz handeln.

Dienstleistungen

Als starker Partner an Ihrer Seite unterstützen wir Sie in folgenden Breichen:

Access-Programmierung

Benötigen Sie Unterstützung bei der Programmierung von Access-Anwendungen? Wir bieten die gesamte Bandbreite von der Access-Programmierung auf Stundenbasis bis zur Durchführung eines Software-Projektes als Auftragsarbeit an. Kontaktieren Sie uns für ein kostenloses Erstgespräch.

Software-Beratung

Haben Sie ein Software-Projekt und Sie wissen nicht, ob Access die richtige Plattform ist? Wir haben über 20 Jahre Erfahrung beim Erstellen von Windows-, Web und mobilen Anwendungen. Kontaktieren Sie uns für eine kostenlose Erstberatung.