Termine verwalten - Arbeitstage berechnen

In Access statt mit Kalendertagen mit Arbeitstagen rechnen

Mit einer einfachen Funktion können Sie nur Arbeitstage statt Kalendertagen zählen lassen.

Bisher noch keine Bewertungen für diesen Artikel.

Wenn Sie in einer Access-Datenbank Termine verwalten, arbeiten Sie mit Funktionen wie "Wiedervorlage" oder "Erinnerungen". Deren Termine sollen dabei aber möglichst nicht auf ein Wochenende fallen und die geschätzte Arbeitszeit bis dort auch nur an echten Arbeitstagen stattfinden. Eine einfache Funktion löst diese Aufgabe.

Nur Arbeitstage berücksichtigen

Es ist leicht, Kalendertage zu einem Datum hinzuzufügen, indem Sie deren Anzahl einfach addieren. Es gibt jedoch keine fertige Lösung, wenn nur die Arbeitstage von Montag bis Freitag berücksichtigt werden sollen.

Die vorhandene DateDiff()-Funktion erlaubt es, von einem Anfangsdatum aus eine bestimmte Anzahl von Kalendertagen weiterzuzählen. Wenn Sie jedoch in einer Tabelle Anfangstermine speichern und zum Beispiel 10 Arbeitstage später einen Endtermin vorgeben möchten, geht das so nicht. Also machen Sie es eben selber!

Dafür schreiben Sie in einem normalen Modul eine Funktion, welche nach Belieben nur Arbeitstage von Montag bis Freitag berücksichtigt. Im Folgenden sehen Sie die Funktion AddWorkdays(), die ein Startdatum sowie eine Anzahl von Arbeitstagen als Argumente erhält:

Function AddWorkdays(varStart As Variant, varDauer As Variant) As Date
    Dim intZaehler As Integer
    Dim intAnzTage As Integer
    
    If Not IsNull(varStart) And Not IsNull(varDauer) Then
        intZaehler = 0
        Do Until intZaehler >= varDauer
            intAnzTage = intAnzTage + 1
            Select Case Weekday(varStart + intAnzTage, vbMonday)
            Case 6, 7
            Case Else: intZaehler = intZaehler + 1
            End Select
        Loop
        AddWorkdays = varStart + intAnzTage
    End If
End Function

Der Rückgabewert der Funktion ist Date, weil Access sie sonst wie einen Text behandelt. Die Argumente hingegen sind Variant, damit sie vor allem robust gegenüber Null-Werten ist. Solange nicht wirklich beide Argumente Daten enthalten, ist eine Berechnung nicht möglich.

Wollen Sie weiterlesen?

Als zahlendes Mitglied von akademie.de haben Sie vollen Zugriff auf alle Inhalte und können alle PDF-Dateien, Checklisten, Mustervorlagen und Anwendungen herunterladen und verwenden.

Wollen Sie mehr über die Mitgliedschaft erfahren?

Wenn Sie schon Mitglied sind, loggen Sie sich bitte ein.