collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 50
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 3
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13800
  • stats Beiträge insgesamt: 63497
  • stats Themen insgesamt: 8604
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Wenn - dann Abfrage...  (Gelesen 579 mal)

Offline Johannes72

  • Newbie
  • Beiträge: 44
Wenn - dann Abfrage...
« am: Mai 20, 2017, 17:53:33 »
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
« Letzte Änderung: Mai 20, 2017, 18:04:12 von Johannes72 »
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6938
Re: Wenn - dann Abfrage...
« Antwort #1 am: Mai 20, 2017, 18:14:30 »
Hallo,
das geht so nicht.
Beschreibe mal in Worten was Du erreichen willst.
Gruß
Klaus
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 851
Re: Wenn - dann Abfrage...
« Antwort #2 am: Mai 20, 2017, 18:16:34 »
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 (⌒▽⌒)
 

Offline Johannes72

  • Newbie
  • Beiträge: 44
Re: Wenn - dann Abfrage...
« Antwort #3 am: Mai 20, 2017, 18:50:25 »
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...
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 851
Re: Wenn - dann Abfrage...
« Antwort #4 am: Mai 20, 2017, 19:48:51 »
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 (⌒▽⌒)
 

Offline Johannes72

  • Newbie
  • Beiträge: 44
Re: Wenn - dann Abfrage...
« Antwort #5 am: Mai 20, 2017, 20:12:30 »
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
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 851
Re: Wenn - dann Abfrage...
« Antwort #6 am: Mai 20, 2017, 20:24:52 »
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 (⌒▽⌒)
 

Offline Johannes72

  • Newbie
  • Beiträge: 44
Re: Wenn - dann Abfrage...
« Antwort #7 am: Mai 20, 2017, 20:35:00 »
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....