Abfragen [basics]: Mit Zeiträumen rechnen

Im Artikel Eingebaute Funktionen: Rund um Datum und Uhrzeit (www.access-basics.de/632) haben wir uns die eingebauten Funktionen von Access zum Arbeiten mit Datums- und Uhrzeitwerten beschäftigt. Im vorliegenden Artikel nutzen wir diese, um verschiedene Zeiträume zu ermitteln. Tage, Wochen, Monate zwischen zwei Datumsangaben, das Gleiche für Stunden, Minuten und Sekunden, Berechnen des Alters von Personen, Tage seit und bis zu bestimmten Daten und vieles mehr untersuchen wir in diesem Artikel.

Beispieldatenbank

Die Beispiele dieses Artikels findest Du in der Datenbank AbfragenBasics_MitZeitraeumenRechnen.accdb.

Beispieltabellen

Im Rahmen der Beispiele zu diesem Artikel werden wir mit verschiedenen Tabellen arbeiten. Für die Beispiele, in denen es sich um das Berechnen von Abständen zwischen zwei Datumsangaben dreht, nutzen wir die Tabelle tblAbwesenheiten. Hier können wir mit den beiden Feldern AbwesenheitVon und AbwesenheitBis arbeiten, um verschiedenste Zeiträume zu berechnen. Die Tabelle enthält bereits einige Beispieldatensätze (siehe Bild 1).

Die Tabelle tblAbwesenheiten

Bild 1: Die Tabelle tblAbwesenheiten

Für andere Zwecke nutzen wir die Tabelle tblGeburtstage.

Anzahl Tage zwischen zwei Datumsangaben

Für die Berechnung von Abwesenheiten wie Fehlzeiten können wir die Anzahl der Tage zwischen zwei Datumsangaben mit der DatDiff-Funktion ermitteln.

Dazu nutzen wir den folgenden Ausdruck:

TageAbwesend: DatDiff("t";[AbwesenheitVon];[AbwesenheitBis]) + 1

Diesen fügen wir in eine Abfrage ein, die auf der Tabelle tblAbwesenheiten basiert und alle Felder dieser Tabelle enthält. Der Entwurf dieser Abfrage ist in Bild 2 dargestellt.

Die Abfrage qryTageAbwesend

Bild 2: Die Abfrage qryTageAbwesend

Warum verwenden wir nicht einfach nur DatDiff, sondern addieren noch den Wert 1 hinzu Weil DatDiff die Differenz liefert und nicht beide Tage mit in den Abwesenheitszeitraum einschließt.

Das Ergebnis liefert die erwarteten Werte (siehe Bild 3).

Die Abfrage qryTageAbwesend in der Datenblattansicht

Bild 3: Die Abfrage qryTageAbwesend in der Datenblattansicht

Anzahl Tage zwischen zwei Datumsangaben ohne Wochenenden

Access [basics]

Unser exklusives Angebot für Dich!

Access im Unternehmen
7,90 € im Monat*

(Das Abo ist jederzeit monatlich kündbar)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →