window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Mit Prozentzahlen arbeiten

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Wer Access-Datenbanken programmiert, landet früher oder später auch bei Prozentzahlen. Diese werden etwas für die Angabe des Mehrwertsteuersatzes für Artikel benötigt (eigentlich ist das der Haupteinsatzzweck). Allerdings muss man durchaus beachten, wie Prozentzahlen gespeichert werden und wie Sie die Formatierung in Formularen und Berichten wählen, damit Sie diese Zahlen korrekt darstellt und richtig damit rechnen können. Dieser Artikel zeigt, was dabei zu beachten ist.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1906_Prozentzahlen.accdb.

Ungenauigkeiten bei Fließkommazahlen

Als Erstes wollen wir schauen, welchen Datentyp wir für die Darstellung von Prozentzahlen nutzen können. Grundsätzlich gibt es Fließkommazahlen und Festkommazahlen. Die Datentypen Single und Double sind beispielsweise Fließkommazahlen.

Eine genaue Beschreibung sparen wir uns an dieser Stelle, stattdessen schauen wir uns an, wie diese etwa beim Summieren vieler gleicher Werte verhalten, die nicht ausreichend genau dargestellt werden können. Im folgenden Beispiel addieren wir 1.000 Mal den Wert 0,1 und geben dann das Ergebnis aus:

Public Sub TestDouble()
    Dim i As Integer
    Dim dblSumme As Double
    For i = 1 To 1000
        dblSumme = dblSumme + 0.1
    Next i
    Debug.Print dblSumme
End Sub

Das Ergebnis lautet nicht 100, wie man erwarten könnte, sondern 99,9999999999986.

Wenn wir die gleiche Prozedur mit dem Datentyp Currency durchführen, der Festkommazahlen mit vier Nachkommastellen speichert, erhalten wir das korrekte Ergebnis, nämlich 100:

Public Sub TestCurrency()
    Dim i As Integer
    Dim curSumme As Currency
    For i = 1 To 1000
        curSumme = curSumme + 0.1
    Next i
    Debug.Print curSumme
End Sub

Beim Rechnen mit Geldbeträgen und Prozentzahlen sollten hier keine Ungenauigkeiten auftreten, daher wählen wir nachfolgend keinen Fließkomma-Datentyp zum Speichern von Prozentzahlen.

Datentyp für Prozentzahlen

Legen wir nun eine Beispieltabelle an, die Artikel speichern soll – samt Nettopreis und Mehrwertsteuersatz und dem Bruttopreis als berechnetes Feld.

Der Entwurf der Tabelle sieht wie in Bild 1 aus. Das Feld Mehrwertsteuersatz haben wir als Feld mit ganzen Zahlen ausgelegt – mit der Idee, den Prozentsatz als ganze Zahlen einzugeben.

Erster Versuch eines Feldes für Prozentzahlen

Bild 1: Erster Versuch eines Feldes für Prozentzahlen

Zur Berechnung des Bruttopreises und gleichzeitig zur überprüfung, welche Werte sich tatsächlich im Feld Mehrwertsteuersatz befinden, geben wir für das Feld Bruttopreis die folgende Formel für die Eigenschaft Ausdruck ein:

[Nettopreis]*(1+[Mehrwertsteuersatz]/100)

In der Datenblattansicht wird allerdings noch kein Prozentzeichen angezeigt (siehe Bild 2).

Die Berechnung gelingt, aber wir sehen kein Prozentzeichen.

Bild 2: Die Berechnung gelingt, aber wir sehen kein Prozentzeichen.

Das ändern wir zunächst, indem wir wieder in die Entwurfsansicht wechseln und die Eigenschaft Format des Feldes Mehrwertsteuersatz auf Prozentzahl einstellen. Das führt zwar dazu, dass nun ein Prozentzeichen angezeigt wird – aber dafür wird der im Feld enthaltene Wert nun auch mit 100 multipliziert (siehe Bild 3).

Das Prozentzeichen ist nun da, allerdings wird der Wert mit 100 multipliziert.

Bild 3: Das Prozentzeichen ist nun da, allerdings wird der Wert mit 100 multipliziert.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar