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
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.
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
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.
Jaaaa, deutlich schneller. :)
Klappt richtig gut jetzt.
Ich danke dir für die Hilfe und wüsche ein schönes Weekend.
Gruß Achim