Neuigkeiten:

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

Mobiles Hauptmenü

If Anweisung in Abfrage

Begonnen von Paule, Mai 17, 2016, 15:53:59

⏪ vorheriges - nächstes ⏩

Paule

Hallo,

ich habe ein Problem bezüglich einer If-Anweisung in einer Abfrage, welches ich einfach nicht durchsteige.

Folgende Situation:
Wir verkaufen Produkte über einen Zeitraum von mehreren Monat. Monatlich muss dann eine Rate gezahlt werden.
Diese Ratenzahlungen sind in der Datenbank als "Installments" angelegt.
Nun würden wir gerne nachverfolgen, inwieweit diese Raten bezahlt werden.
Dafür wurden die "Repayments" angelegt und sobald ein Kunde zahlt, wird dieses Repayment dann dem Installment zugeordnet.

Über eine Abfrage lasse ich mir dann also die Installments und die dazugehörigen Repayments anzeigen.

Dies funktioniert auch einwandfrei.

Nun gibt es die vertragliche Pflicht, bei Zahlungsverzug eine Gebühr zu bezahlen. Diese Gebühr richtet sich nach der Dauer des Zahlungsverzugs (Anzahl der Tage).

Um nun die Höhe der Gebühr zu ermitteln, muss ich also zwei Fälle berücksichtigen:

a) Der Kunde hat noch gar nicht bezahlt aber das heutige Datum ist schon später als das eigentliche Datum der Ratenzahlung.
b) Der Kunde hat zwar gezahlt, aber diese Zahlung war zu spät, wofür er Gebühr zahlen muss.

Dies habe ich versucht in der Abfrage in einem Feld zu generieren ("Time Difference"). Folgenden Code verwende ich:
Wenn([RepaymentDate] Ist Null,(Wenn(DatDiff('t',[InstallmentDate], Datum())>0[size=14pt][b])[/b][/size],DatDiff('t',[InstallmentDate], Datum()),0),(Wenn(DatDiff('t',[RepaymentDate],[InstallmentDate])>0),DatDiff('t',[RepaymentDate],[InstallmentDate]),0))

Irgendetwas stimmt hier nicht. Wenn ich auf Ausführen klicke zeigt er mir zwar keine Fehlermeldung an, springt aber immer zu der Fett markierten Klammer. Meine Klammerzählung hat ergeben, dass alles passen müsste. Ich weiß auch nicht so recht, was ich noch tun soll.

Ich wäre euch sehr dankbar für eure Unterstützung!

DF6GL

Hallo,

auf den ersten Blick:  ersetze die Kommata durch Semikola und die Hochkommata durch Gänsefüßa  .. ;D
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Paule

Nope.
Das funktioniert nicht.
In der selben Abfrage verwende ich in anderen Feldern ebenso Kommata und Hochkommata.

MaggieMay

#3
Zeige bitte den SQL-Code der Abfrage, der entspricht stets der englischen Syntax und ist somit eindeutig interpretierbar.

PS:
Ich tippe mal auf (mindestens) eine fehlende schließende Klammer.
Vor dem Wenn musst du keine Klammern setzen.

PS:
Die "markierte" Klammer ist fehl am Platz, die hatte ich ganz übersehen und mit den Steuerzeichen entfernt. ;-)
Gleiches gilt dann natürlich für die entsprechende Klammer im zweiten "Wenn".
Freundliche Grüße
MaggieMay

Paule

Ok, jetzt funktioniert es!
Danke! :)