PDA

Vollständige Version anzeigen : Berechnung in Abfrage


Susi (ohne Strolch)
17.02.2003, 14:30
Hallo,

ich bins nochmal. Ich habe in einer Abfrage 3 Felder und möchte folgendes Berechnungsergebnis in einem vierten Feld anzeigen lassen..

Berechnung: ([Feld1]+[Feld2])/[Feld3]

Leider steht in Feld2 nicht immer etwas drin. In Feld4 wird mir aber nur etwas angezeigt, wenn in Feld1 und Feld2 etwas steht. Kann mir jemand sagen, wie ich das hier ändern muss?

Susi

Arne Dieckmann
17.02.2003, 14:38
(Nz([Feld1];0)+Nz([Feld2];0))/[Feld3]

dürfte helfen.

jmc
17.02.2003, 14:40
Hallo Susi

Du musst das/die Felder auf NULL prüfen:

(IIf(IsNull([Feld1]);0;[Feld1]) + IIf(IsNull([Feld2]);0;[Feld2])) / IIf(IsNull([Feld3]);1;[Feld3])
Schau mal in die OL-Hilfe zu IIf (Wenn)
Sofern Feld3 = NULL ist, dann musst du natürlich eine 1 anstelle nehmen, sonst gibt's eine Division durch 0 - und das gibt einen Runtime-Fehler

Nouba
17.02.2003, 14:40
Hallo Susi,

wende die Nz-Funktion auf das Feld an, das möglicherweise leer ist. Ohne Angabe des optionalen zweiten Arguments wird bei Zahlen eine 0 und bei Textfeldern "" zuruckgegeben.

Berechnung: ([Feld1]+Nz([Feld2]))/[Feld3]

Na wenn ich schon der lahmste bin, will ich an dieser Stelle noch darauf hinweisen, dass die Tabelle ein Strukturproblem aufweisen könnte. Wenn Feld1 und Feld2 aufaddiert werden, könnte es sich um wiederholende Spalten handeln.

Was ist die Natur der Daten? Was steckt hinter den Feldnamen?

Siehe Link in meinem Footer Relationale Datenbanken

Susi (ohne Strolch)
17.02.2003, 14:58
Hallo,

mensch, schnelle und funktionierende Antworten, super Forum hier, danke.

Kann mir jetzt noch jemand verraten, wie ich eine Sekunden Zahl (z.B. 3600) in Stunden:Minuten:Sekunden (01:00:00) umrechnen bzw. anzeigen lassen kann (in der Abfrage)?

Susi

Nouba
17.02.2003, 15:07
Hallo Susi,

dateadd("s",3600,0) für 3600 Sekunden.In der Abfrage ist 3600 durch den Feldnamen mit den Sekundenwerten zu ersetzen.

Susi (ohne Strolch)
17.02.2003, 15:18
Hallo Nouba,

gibt's hier eine Möglichkeit, dass dies auch bei Zeiten über 24 Stunden funktioniert?

Nouba
17.02.2003, 15:28
Hallo Susi,

die Rechnung stimmt schon. Zur Darstellung kannst Du mal bei Don Karl unter 2.10 http://www.donkarl.com/FAQ/FAQ2Allgemein.htm#2.10 nachsehen.

Aquarii
17.02.2003, 15:36
Hallo Susi,

oder Du schaust einmal hier:

http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=86464

Susi (ohne Strolch)
17.02.2003, 16:27
Hallo,

wenn ich es richtig sehe, bauen die Beispiele hinter den Links auf VBA auf, oder? Ich wollte eigentlich nicht noch ein Formular vor die Abfrage legen, sondern die Zeit direkt im Abfrageergebnis richtig sehen.

Jetzt erscheint bei Zeiten, die über 24 Stunden liegen soetwas wie

01.01.1900 11:49:41

Susi

Nouba
17.02.2003, 16:37
Hallo Susie,

so geht es in einer Abfrage, (Marios Variante)

SekundeInHHNNSS: Format([SekundenFeld]\3600;"00") & ":" & Format([SekundenFeld]/86400;"nn:ss")