Termine verwalten - Arbeitstage berechnen

In Access statt mit Kalendertagen mit Arbeitstagen rechnen

Ersten Kommentar schreiben
Stand: 2. Mai 2011

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.

Sie können diese Funktion dann wie jede andere auch in einer Abfrage in einem berechneten Feld benutzen. Hier sehen Sie dies auf der Grundlage einer Tabelle tblAufgaben mit den wesentlichen Feldern aufDatumStart und aufDauer:

Als Mitglied können Sie diesen Beitrag weiterlesen!

Werden Sie Mitglied und testen Sie akademie.de 14 Tage lang kostenlos!

In den ersten 14 Tagen haben Sie Zugriff auf alle Inhalte auf akademie.de, außer Downloads. Sie können in dieser Zeit ohne Angabe von Gründen stornieren. Eine E-Mail an service@akademie.de genügt. Nur wenn Sie Mitglied bleiben, wird der Mitgliedsbeitrag nach Ende der 14tägigen Stornofrist abgebucht.

Ich bin bereits Mitglied
Jetzt Mitglied werden und akademie.de 14 Tage kostenlos testen
Ich entscheide mich für folgende Zahlungsweise:
14 Tage Stornorecht:
Ich kann meine Mitgliedschaft in den ersten 14 Tagen jederzeit formlos stornieren, z.B. per E-Mail an service@akademie.de.

Downloads zu diesem Beitrag

Newsletter abonnieren