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.
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).
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).
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