PDA

Vollständige Version anzeigen : #zahl Meldung unterbinden


mkubik
25.09.2003, 09:26
Hallo!

Ich habe ein problem in einem Formular. Dort habe ich einige
Felder in denen Berechnungen durchgeführt werden. Wenn
eines der Felder leer ist (welches zur Berechnung notwendig ist)
dann spuckt Access die Meldung "#Zahl" in das betroffene Feld.
Gibt es da eine Möglichkeit (ähnlich wie in Excel die Wenn-Formel)
um statt der Fehlermeldung etwas anderes auszugeben wenn
ihm Werte fehlen?

Gruß :confused:

Morli
25.09.2003, 09:32
Die Meldung #Zahl deutet eigentlich daruf hin, das Du in einem der Felder, die für die Berechnung herangezogen werden, einen Wert NULL hast. Diesen kannst Du mit der Nz-Funktion abfangen und damit würde auch #Zahl verschwinden.

Morli

mkubik
25.09.2003, 09:45
Was ist die Nz-Funktion? Kannst du mir dazu genauere Angaben machen?

Original geschrieben von Morli
Die Meldung #Zahl deutet eigentlich daruf hin, das Du in einem der Felder, die für die Berechnung herangezogen werden, einen Wert NULL hast. Diesen kannst Du mit der Nz-Funktion abfangen und damit würde auch #Zahl verschwinden.

Morli

strausto
25.09.2003, 09:48
Ich glaube es ist nicht zuviel verlangt die OH zu bemühen:

Nz-Funktion


Sie können die Funktion Nz verwenden, um Null, eine leere Zeichenfolge
(" ") oder einen anderen festgelegten Wert zurückzugeben, wenn eine
Variable des Typs Variant den Wert Null hat. Sie können diese Funktion z.
B. verwenden, um einen Wert Null in einen anderen Wert umzuwandeln
und so zu verhindern, dass der Wert durch einen Ausdruck verbreitet wird.


Syntax

Nz(Variant[, WertWennNull])

Die Funktion Nz hat die folgenden Argumente.

Argument Beschreibung
Variant Eine Variable des Datentyps Variant.

WertWennNull Optional (wenn nicht in einer Abfrage verwendet). Eine
Variable des Datentyps Variant, die einen Wert liefert, der zurückgegeben
wird, falls das Argument Variant den Wert Null hat. Dieses Argument
ermöglicht es Ihnen, einen Wert zurückzugeben, der ungleich 0 bzw. keine
leere Zeichenfolge ist.

Anmerkung Wenn Sie die Nz-Funktion in einem Ausdruck in einer Abfrage
ohne das Argument WertWennNull verwenden, wird in Feldern mit
Nullwerten eine leere Zeichenfolge ausgegeben.

Nz(null,0) = 0

mkubik
25.09.2003, 10:05
Schön und gut, aber wie setze ich das jetzt bei meinem Problem um?
Folgendes Beispiel:

Ich habe zwei Felder. In dem ersten Feld steht eine absolute Zahl.
In dem zweiten Feld soll ich Prozentzahl ausgerechnet werden.
Wenn jetzt das erste Feld 0 ausgibt kann die Prozentzahl nicht
mehr berechnet werden. Ich habe jetzt in dem Feld für die Prozent-
berechnung folgendes probiert:

=Nz([Feld_absolute_Zahl,"-",[Feld_absolute_Zahl] / [Feld_Summe])

Das akzeptiert er aber leider nicht...

Kann mir da jemand weiterhelfen?

Morli
25.09.2003, 10:55
=NZ(Feld_absolute_Zahl];0)/ [Feld_Summe]

Morli

mkubik
25.09.2003, 11:41
Funzt bei mir nicht... Jetzt gibt er #Fehler aus....

Original geschrieben von Morli
=NZ(Feld_absolute_Zahl];0)/ [Feld_Summe]

Morli

racoon0506
25.09.2003, 11:44
Da fehlt eine öffnende eckige Klammer!
=NZ([Feld_absolute_Zahl];0)/ [Feld_Summe]

mkubik
25.09.2003, 11:45
Ja, die hab ich ersetzt. Geht trotzdem nicht... Schade!!! :bawling:

Original geschrieben von racoon0506
Da fehlt eine öffnende eckige Klammer!
=NZ([Feld_absolute_Zahl];0)/ [Feld_Summe]

MRR
25.09.2003, 11:45
Und wie ist es mit
=Wenn( IstNull( [Feld_absolute_Zahl]); 0; [Feld_absolute_Zahl] / [Feld_Summe])
?

Arne Dieckmann
25.09.2003, 11:47
Naja, nach den Regeln der Mathematik darfst Du nicht durch Null bzw. 0 teilen. Wenn also das Summenfeld auch 0 ist, kommt es zum Fehler.
Versuch mal (ungetestet):

=IIF(Nz(Summenfeld;0)>0;Nz([Feld_AbsoluteZahl];0)/[Summenfeld];"nix zu rechnen")


BTW: Deine Zitate sind etwas überflüssig - ich denke, dass die Antwortenden ihre zuvor gemachten Antworten noch selber kennen. ;)

mkubik
25.09.2003, 12:01
Hey,

danke für diesen Tip. Funzt erste Sahne...

BTW: Warum sollte man die Dinge nicht benutzen wenn
Sie doch da sind... :D

racoon0506
25.09.2003, 12:06
wenn die Antwort auf ein unmittelbar vorangehenden Beitrag folgt, ist es überflüssig. das macht den Threat nur unnötig lang.
Wenn du dich allerdings auf einen Beitrag beziehst, der bereits ein paar Antworten früher war, dann ist es wieder für die Verständlichkeit gut.

In einem Buch steht ja auch beim Wechsel in einen neuen Absatz nicht, was im vorherigen stand....

Arne Dieckmann
25.09.2003, 12:28
@Jan: So ein Buch wäre evtl. in weiter Zukunft ein unter Sammlern kostbares Mängelexemplar. :D