Wer in VBA Zahlen rundet, greift meist zur eingebauten Round-Funktion. Das klingt naheliegend, führt aber regelmäßig zu überraschenden Ergebnissen. Der Grund liegt in einem Rundungsverfahren, das für kaufmännische Zwecke ungeeignet ist. Wir zeigen Dir, wo das Problem liegt und wie Du es mit einer eigenen Funktion zuverlässig löst.
Beispieldatenbank
Die Beispiele dieses Artikels findest Du in der Datenbank VBABasics_RundenMitVBA.accdb.
Runden im Alltag
Runden gehört zu den häufigsten Operationen beim Arbeiten mit Zahlen in kaufmännischen Anwendungen.
Ob Rechnungsbeträge, Steuerberechnungen oder statistische Auswertungen – fast überall müssen Dezimalzahlen auf eine bestimmte Anzahl Nachkommastellen gebracht werden.
In der Schule lernen wir die kaufmännische Rundungsregel: Ist die erste wegfallende Stelle kleiner als 5, wird abgerundet. Ist sie 5 oder größer, wird aufgerundet. Diese Regel ist einfach, eindeutig und für die meisten Anwendungsfälle richtig.
VBA bietet mit Round eine eingebaute Funktion zum Runden. Auf den ersten Blick scheint diese alles zu leisten, was man braucht. Bei näherer Betrachtung offenbart sie jedoch ein Verhalten, das viele Entwickler in die Irre führt.
Die eingebaute Round-Funktion und ihre Tücke
Die Round-Funktion hat folgende Syntax:
Round(Ausdruck, [NachkommaStellenAnzahl])
Der erste Parameter ist die zu rundende Zahl, der zweite die gewünschte Anzahl an Nachkommastellen. Fehlt der zweite Parameter, rundet VBA auf eine ganze Zahl. Ein einfaches Beispiel:
Unser exklusives Angebot für Dich!
(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.
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 →![Access [basics]](https://access-basics.de/wp-content/uploads/2021/02/logo400.png)