Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Wenn - dann Abfrage...

Begonnen von Johannes72, Mai 20, 2017, 17:53:33

⏪ vorheriges - nächstes ⏩

Johannes72

Hallo

Kann mir bitte jemand sagen warum eine Abfrage mit:

Ausdr1: Wenn([gefahrenekm]>[tdiaetenabkm];[diaetenzeit]*([tdiaetenh]*24);0)

funktioniert, aber:

Ausdr1: Wenn([gefahrenekm]>[tdiaetenabkm] oder wenn ([tdiaet] = 1);[diaetenzeit]*([tdiaetenh]*24);0)

nicht??

Wenn ich die Zweiten Klammern entferne, funktioniert es nicht und mit den Klammern auch nicht...??? Egal was ich versuche, immer wieder bekomme ich Fehler.

Kann mir da bitte jemand helfen?

Danke

MzKlMu

Hallo,
das geht so nicht.
Beschreibe mal in Worten was Du erreichen willst.
Gruß Klaus

Lachtaube

Du müsstest die 2. Wenn-Funktion zumindest auch mit einem zweiten Argument ausstatten, damit sie gültig wäre - in diesem Fall ist das aber unnötig.

Wenn(([gefahrenekm] > [tdiaetenabkm])
     Oder
     ([tdiaet] = 1); [diaetenzeit] * [tdiaetenh] * 24; 0)


PS: Ich habe den Ausdruck nur untereinander geschrieben, damit der Zusammenhang besser erkennbar ist.
Grüße von der (⌒▽⌒)

Johannes72

Danke für die rasche Antwort..

@Lachtaube: ich bekomme zwar keine Fehlermeldung aber in der Abfrage steht im Feld "0" was eigentlich nicht sein soll sondern eben das Ergebenis aus "[diaetenzeit] * [tdiaetenh] * 24" ...

@MzKlMu: Tja, was will ich erreichen.

Es geht um eine Liste mit Kilometergelt und Diäten. Das "Fahrentenbuch" funktioniert im Grunde einwandfrei. Kilometergelt, Diäten usw. alles bestens.  Nun möchte ich ein zusätzliches Ja/Nein Feld einbauen in dem ich Diäten verrechenen kann ohne Rücksicht auf Kilometer und Zeit. Die Grundidee ist: Wenn ich, wie im aktuellen Fall, die "Reisezeit" erreicht habe aber nicht die notwendigen Kilometer gefahren bin.... warum auch immer.... möchte ich dennoch die Diäten abrechenen können wenn ich dieses neue Ja/Nein Feld anhacke...

So im groben und schnell beschrieben sollte das der Sinn sein...

Lachtaube

Ein Ja/Nein-Feld hat in Access nicht den Wert 1 sondern -1. Man kann die Abfrage auf den Wert aber auch ganz weglassen.

Wenn(([gefahrenekm] > [tdiaetenabkm])
     Oder
     [tdiaet]; [diaetenzeit] * [tdiaetenh] * 24; 0)


oder vermutlich noch einfacher

Abs(([gefahrenekm] > [tdiaetenabkm]) Oder [tdiaet]) * [diaetenzeit] * [tdiaetenh] * 24

Damit kannst Du dann vermutlich Dein Geld richtig geltend machen. :)
Grüße von der (⌒▽⌒)

Johannes72

Hallo Lachtaube

Mir ist völlig unklar warum, aber das funktioniert so

Danke für deine Hilfe, das hätte ich so nicht geschafft...

Danke

Lachtaube

Johannes, wenn eine Bedingung innerhalb der Klammer erfüllt ist, wird sie als Wahr (-1) bzw. bei Nichterfüllung als Falsch (0) ausgewertet. Den Regeln der Logik folgend, sind die Ausdrücke (Wahr Oder Wahr), (Wahr Oder Falsch) sowie (Falsch Oder Wahr) Wahr, und nur (Falsch Oder Falsch) liefert als Ergebnis Falsch. Umgewandelt ind den Zahlenwert ergibt das 0 oder -1. Mit der Abs-Funktion wird der Absolutwert dieses Ausdrucks ermittelt, welcher dann 0 bzw. 1 ergibt und als Faktor in die Multiplikation einfließt.
Grüße von der (⌒▽⌒)

Johannes72

Hi

ich habe aber die Version mit:

Wenn(([gefahrenekm] > [tdiaetenabkm])
     Oder
     [tdiaet]; [diaetenzeit] * [tdiaetenh] * 24; 0)

verwendet, und die funktioniert. Warum auch immer, die Logik ist mir nicht so recht klar....

Den anderen Code habe ich nicht versucht....