Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: accessy am Juli 03, 2015, 13:07:19

Titel: Berechnungsfeld im Formular mit leerem Feld
Beitrag von: accessy am Juli 03, 2015, 13:07:19
Ich habe versucht mit Hilfe des Ausdrucksgenerators in Access 2003 die Differenz zwischen den Feldern "Anzahl" und "Im Test" hinzubekommen.
=Formular!Anzahl-[Im Test]

Das funktioniert aber nur, wenn im Feld "Im Test" eine "0" steht.
Ist das Feld leer, wird nichts berechnet.

Ich habe versucht mit Wenn und NV und isNull und wer weiß nicht noch alles,
aber das einzige, was ich bekomme sind Fehlermeldungen.

Im Ausdrucksgenerator gibt es keine WENN ...DANN....Möglichkeit.
Oder ich habe es nicht gefunden.

Kann mir da jemand die Formel in diesem Textfeld mal so ergänzen,
dass mein Berechnungsfeld einen Wert anzeigt; auch eine "0", falls das Feld "Im Test" den gleichen Wert hat wie das Feld "Anzahl"?
Danke
Gruß Achim
Titel: Re: Berechnungsfeld im Formular mit leerem Feld
Beitrag von: MzKlMu am Juli 03, 2015, 14:08:28
Hallo,
zunächst solltest Du unbding das Feld Anzahl in z.B. Menge umbenennen. Anzahl ist ein reserviertes Wort und liefert die Anzahl der Datensätze, auch wenn eine andere Zahl im Feld steht. Also umbenenne, das ist keine Empfehlung, sondern ein Muss. Weiterhin solltest Du keine Leer und Sonderzeichen in Feldnamen verwenden, das ist aber nur eine Empfehlung die die Arbeit erleichtert, weil die [] entfallen.

=Menge-Nz([Im Test];0)

Dann kannst Du in der Formel Nz verwenden.
Titel: Re: Berechnungsfeld im Formular mit leerem Feld
Beitrag von: accessy am Juli 03, 2015, 16:29:52
So,
Feldnamen geändert auf Menge.
Formel eingebaut.
Alles bestens....na ja... die Funktion zumindest.

Wenn ich die DB runter- oder hochscrolle wird jedes Mal erst gerechnet.
Im Grunde genommen ist das okay, aber es sieht etwas ausgebremst aus.

Diese Formel, bzw. der Ort ist vielleicht nicht die beste Lösung.
Vielleicht sollte ich diese Berechnung in der Datenherkunft, also der Abfrage einbauen.
Oder gibt es eine bessere Lösung?
Vielleicht über DOMSumme?

Gruß Achim
Titel: Re: Berechnungsfeld im Formular mit leerem Feld
Beitrag von: MzKlMu am Juli 03, 2015, 16:51:49
Hallo,
Agregatfunktionen (Dom...) sind meist noch langsamer.
Berechne das Feld in der Abfrage und gebe dem Feld in der Abfrage einen Namen:
FeldnameXY: Menge-Nz([Im Test];0)
Den Feldnamen kannst Du dann im Formular als Steuerelementinhalt verwenden. Das sollte schneller sein.
Titel: Re: Berechnungsfeld im Formular mit leerem Feld
Beitrag von: accessy am Juli 03, 2015, 17:14:19
Jaaaa, deutlich schneller. :)
Klappt richtig gut jetzt.

Ich danke dir für die Hilfe und wüsche ein schönes Weekend.
Gruß Achim