Das Druckdatum von Rechnungen ermitteln und speichern

Ich habe mit Access ein einfaches Fakturierungstool entwickelt. Das möchte ich gern verbessern, indem sich Access merkt, welche Rechnungen bereits gedruckt sind und welche nicht. Das soll am besten über das Datum des Rechnungsdrucks in einer entsprechenden Spalte der Tabelle geschehen.Wie muß ich bei der Sache vorgehen?

Zunächst erweitern Sie die Tabelle um die Spalte »Druckdatum«. Dazu öffnen Sie die Entwurfsansicht und ergänzen unter den anderen Felddefinitionen das Feld »Druckdatum« vom Typ »Datum/Uhrzeit«. Achten Sie auch darauf, daß die Tabelle einen Primärschlüssel besitzt.

Im Beispiel CHIP-Code ACCRECH erfolgt der Druck jeder Rechnung einzeln. Den auslösenden Impuls gibt dabei der Anwender, indem er auf dem Formular eine Schaltfläche anklickt. Dabei ruft er eine einfache Funktion auf, die unter anderem folgende Anweisungen enthält:

Diese Funktion druckt die aktuell im Formular angezeigte Rechnung und aktualisiert danach das Feld »Druckdatum«. Die erste Befehlszeile gibt den entsprechenden Bericht »ReportRechnung« aus. Der Parameter »acViewNormal« bewirkt, daß die Rechnung direkt ausgedruckt wird, ohne daß zuvor eine Seitenansicht erscheint. Da der zweite Parameter hier bedeutungslos ist, folgt nur ein Komma. Der letzte Parameter definiert eine Bedingung, nach der Access bestimmte Datensätze zur Ausgabe auswählt. Im Beispiel ist dabei ausschließlich die Rechnung ausgegeben, deren Primärschlüssel mit dem Primärschlüssel der im Formular angezeigten Rechnung übereinstimmt.

Mit Hilfe der zweiten Befehlszeile wird dann das aktuelle Datum »Date« in das Feld »Druckdatum« des Formulars »FormRechnung« übertragen. Die dritte Zeile schreibt die Änderung des Druckdatums in die Tabelle zurück. Damit hat sich Access den Rechungsdruck gemerkt; es kann allerdings nicht erkennen, ob der Drucker die Rechnung korrekt ausgedruckt hat.

Teil-Listing »Accrech«

DoCmd.OpenReport
"ReportRechnung", acViewNormal, , "[RECHNUNG] = Forms![FormRechnung]![RECHNUNG]"
Forms![FormRechnung]! [Druckdatum] = Date
Forms![FormRechnung].Refresh