Im Formular das Datum des nächsten Wochenendes berechnen

Ich verwalte eine Wochenenddienst-Liste für Zahnärzte mit Access 97. In dieser Liste ist das einzugebende Datum immer genau sieben Tage später als das zuletzt eingegebene Datum. Nun möchte ich, daß Access automatisch das richtige Datum einträgt, jedoch bin ich mit Feldwerten nicht weitergekommen.

Mit Standardwerten für Felder geht da tatsächlich nichts. Wenn Sie die Berechnung aber direkt im Formular unterbringen, ist Access durchaus in der Lage, Ihrem Wunsch vollkommen zu entsprechen.

Um das Formular anzupassen, wählen Sie im Datenbank-Fenster die Registerkarte »Formulare« aus, markieren das Formular und klicken auf den Button »Entwurf«. Öffnen Sie dann das Eigenschaften-Fenster mit dem Menübefehl »Ansicht | Eigenschaften«. Dort finden Sie in der Registerkarte »Ereignis« das »Vor-Eingabe-Ereignis«. Dieses Ereignis führt Access aus, wenn Sie das erste Zeichen in den Datensatz eingeben. Damit Access noch vor der Eingabe das richtige Datum anzeigt, programmieren Sie an dieser Stelle die Berechnung des Datums. Dazu klicken Sie auf den Button hinter dem Eingabefeld des Vor-Eingabe-Ereignisses und tippen das Listing »Dienstliste« (im Kasten rechts) ein.

In diesem Programm berechnet der »Select«-Befehl das bislang größte Datum in der Tabelle und speichert das Ergebnis in der Variable »MaxDat«. Anschließend addiert die Funktion »DateAdd()« sieben Tage hinzu und legt das Datum im Formularfeld »[Datum]« ab. Ein Beispiel finden Sie in der Datei »DIENSTLISTE.MBD« auf der CHIP-Heft-CD.

Listing «Dienstliste»
Private Sub Form_BeforeInsert (Cancel As Integer)
Dim DB As Database
Dim Rs As Recordset

Set DB = CurrentDb
Set Rs = DB.OpenRecordset ("select Max (Datum) as MaxDat from Dienstliste")

Forms![Dienstliste]![Datum] = DateAdd ("d",7,CDate (Rs![MaxDat]))

End Sub