@lorf:
Sorry lorf, so geht das nicht, wenn er rechnen will in Access, dann muss er Zahlenfelder benutzen und wenn er Zahlenfelder benutzt kann er nicht das Wort leer reinschreiben.
Ausserdem habe ich ihn so verstanden, dass er genau das Gegenteil will, nämlich dass etwas gerechnet wird, auch wenn in einem Feld nichts drinsteht. Und deshalb habe ich ihn gefragt was er rechnen will, denn um ihm die nz-Funktion hinschreiben zu können, muss man das halt exakt wissen was er will und wo das leere Feld überall sein kann. Man muss ja auch ausschließen, dass eine Division durch 0 durchgeführt wird, aber die Verrenkung brauch ich ja nicht zu machen, wenn gar nicht dividiert wird. Und wenn es eine Multiplikation ist, dann muss ich wissen ob beide Stellen leer sein können oder sogar nocht mehrere und am einfachsten wäre es halt eben gegangen, wenn er mal geschrieben hätte worum es genau geht, also beispielsweise so:
z1, z2, z3 z4, E sind Zahlenfelder, können alle leer sein oder aber halt nur teilweise. Es muss dann E = (z1 + z2) * z3 gerechnet werden.
Oder aber z1 und z2 und E sind Textfelder, dan brauchste nicht mit NZ zu rechnen, dann kannste einfach mit val() rechnen und brauchst auch nicht abchecken ob da 0 oder nix drinsteht, ausser wenn eine Division vorkommt.
@Peter:
Da du leider nicht hingeschrieben hast was Du für Felder hast muss ich das jetzt mal tun:
es sei LP der Listenpreis, p der Prozentsatz und T die Transportkosten und Deine Rechnung dann
E(rgebnis) = LP - p + T
Falls Du unsinnigerweise wirklich alles in Textfelder geschrieben hast, dann kannste einfach schreiben
E: Val ([LP]) - val ([p]) + val ([T]), val ist der Wert und der Wert von einem leeren Feld ist genauso 0 wie die 0 selbst oder irgendein Text, der da drinsteht
Ich gehe jetzt aber mal davon aus, dass alle Felder Zahlenfelder sind. Dann hast Du mehrere elegante Lösungsmöglichkeiten:
Du kannst bei allen Zahlenfeldern im Tabellenentwurf Standardwert 0 eintragen, dann wird automatisch grundsätzlich sofort beim Anlegen eines neuen Datensatzes in jedes leere Zahlenfeld eine 0 eingetragen. Dann wäre Deine Rechnung E:[LP] - [p] + [T] immer richtig, weil mit 0 gerechnet wird, solange keiner die 0 löscht ohne eine andere Zahl einzutragen.
Wenn Du allerdings sicher gehen willst, dass auch dann richtig gerechnet wird, wenn Dir einer die 0 rauslöscht, dann schreibste: E: nz([LP]) - nz([p]) + nz([Z])
Gruß Marie
PS: Und künftig wäre nett, wenn Du exakt schreiben würdest was Du für eine Rechnung ausführen willst und eventuell noch wie Deine Felder heißen und insbesondere ob es Textfelder oder Zahlenfelder sind, dann geht alles viel schneller.