In Ihren Datenbanken zur Verwaltung von Terminen oder Tätigkeiten gibt es in der Regel ein Feld STARTZEIT (Datentyp „Datum/Zeit“, Format „24 Stunden“), für das Sie die aktuelle Zeit als Vorgabe über die Eigenschaft STANDARDWERT mit der Formel „=Format(Jetzt(), "hh:nn") eingestellt haben.
Beim Anlegen neuer Datensätze stehen in diesem Feld nun meistens Zeitangaben wie „08:39“ oder „14:07“. Praktischer für Übersichten und Abrechnungen wäre es, wenn die Zeitangaben automatisch im 15-Minuten-Intervall gerundet werden, sodass nur Zeiten wie „14:00“, „14:15“, „14:30“, „14:45“ vorgegeben sind.
Access-Berater-Tipp: Eine solche Funktionalität lässt sich recht einfach mit Hilfe einer kleinen VBA-Funktion ZEITRUNDEN() realisieren: Function ZeitRunden(varZeit, varRundenAuf) As Date
Dim hh As Integer, nn As Integer
Dim strZeit As String
strZeit = Format$(varZeit, "hh:nn")
hh = Val(Left$(strZeit, 2))
nn = Val(Mid$(strZeit, 4, 2))
ZeitRunden = Format (TimeSerial( _hh, _Int(nn / varRundenAuf+ 0.5) _* varRundenAuf, _0), "hh:nn")
End FunctionIm ersten Schritt konvertieren wir die als Parameter
varZeit übergebene Zeit in eine Zeichenkette mit dem Format „Stunden:Minuten“. Um die daraus resultierenden Angaben einfacher verarbeiten zu können, werden Stunden und Minuten in getrennten Variablen festgehalten.
Mit Hilfe von
TimeSerial bauen wird das Funktionsergebnis aufgebaut, wobei der Minutenanteil durch das Rundungsintervall dividiert und anschließend wieder damit multipliziert wird. Zum Beispiel bei der Uhrzeit „13:24“ Uhr: Aus „24 / 10= 2“ und „2 * 10“ ergibt sich ein auf volle 10 Minuten gerundeter Wert von „20 Minuten“.