Rechnen in Formularen

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

Es gibt verschiedene Gelegenheiten, in Formularen die Ergebnisse von Rechenoperationen zu präsentieren. Dabei lassen sich viele Berechnungen in Abfragen auslagen, die als Datenherkunft der Formulare dienen, manchmal gelingt dies jedoch nicht. Dieser Artikel zeigt, wie Sie einfache Berechnungen bis hin zu formularübergreifenden Berechnungen durchführen und was Sie dabei beachten müssen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1202_RechnenInFormularen.mdb.

Einfache Formeln in Textfeldern

Beginnen wir mit einem scheinbar einfachen Beispiel. Im Formular aus Bild 1 finden Sie zwei Textfelder namens txtSummand1 und txtSummand2, die zur Eingabe zweier Summanden dienen. Das Textfeld txtSumme soll die Summe der beiden Werte liefern. Damit dies geschieht, weisen Sie der Eigenschaft Steuerelementinhalt den folgenden Ausdruck zu:

Summieren zweier Textfelder

Bild 1: Summieren zweier Textfelder

=[txtSummand1]+[txtSummand2]

Ein Wechsel in die Formularansicht und die Eingabe zweier Zahlen zeigt, dass dies so nicht funktioniert: Der Plus-Operator addiert die Zahlen nicht, sondern fasst diese als Zeichenfolgen auf und führt die beiden Textketten zusammen (siehe Bild 2). Access geht davon aus, dass ein ungebundenes Textfeld eine Zeichenkette enthält und fügt diese durch den Plus-Operator zusammen. Wenn Sie sicherstellen wollen, dass Access mit Zahlen arbeitet, können Sie den Summanden beispielsweise die Val-Funktion voranstellen (die dann mit Wert übersetzt wird). Der Ausdruck sieht dann etwa so aus:

Zeichenverkettung statt Addition

Bild 2: Zeichenverkettung statt Addition

=Wert([txtSummand1])+Wert([txtSummand2])

Allerdings streikt Access dann, wenn die Textfelder beim öffnen des Formulars keinen Wert enthalten und liefert als Ergebnis einen Ausdruck wie #Typ!.

Fehler bei leeren Feldern

In diesem und in anderen Fällen kann die Wert-Funktion die enthaltenen Null-Werte nicht verarbeiten. Verwenden Sie dann die Nz-Funktion, um für gegebenenfalls leere Textfelder den Wert 0 zu liefern:

=Wert(Nz([txtSummand1];0))+Wert(Nz([txtSummand2];0))

Probleme gibt es hier immer noch, wenn Sie Zahlen mit Nachkommastellen angeben. Die Val-Funktion erkennt nur den Punkt als Dezimaltrennzeichen. Sollten Sie alternativ das Komma als Dezimaltrennzeichen verwenden wollen, was in der deutschen Systemeinstellung eingestellt sein dürfte, können Sie alternativ die Funktion CDbl verwenden, um den vermeintlichen Text in eine Zahl umzuwandeln. Der Punkt als Trennzeichen wird dann allerdings komplett ignoriert – aus 12.5 wird dann 125.

Rechnen mit gebundenen Textfeldern

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