Neuigkeiten:

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

Mobiles Hauptmenü

Nz Funktion in Abfrage - WertWennNull?

Begonnen von Paule, Mai 18, 2016, 11:17:48

⏪ vorheriges - nächstes ⏩

Paule

Hallo, ich habe eine Frage zu einer NZ-Funktion in einer Abfrage.

Und zwar möchte ich mir in der Abfrage die Datensätze anzeigen lassen, die ein InstallmentDate (so heißt das Feld) aufweisen mit folgenden Eigenschaften:

>=Nz([TempVars]![StartDateRO],DatWert('1900-01-01')) Und <=Nz([TempVars]![EndDateRO],DatWert(<Datum()))

Dies ist zu komplex um ausgewertet zu werden. Ich weiß, dass es an der WertWennNull Eigenschaft der zweiten NZ-Funktion liegt.
Ich würde gerne, dass er mir alle Datensätze mit Installment Date kleiner gleich der TempVar "EndDateRO" anzeigen lässt, und wenn diese nicht vorhanden ist, soll er mir alle anzeigen, die ein Installment Date aufweisen, welches vor dem heutigen Datum liegt.

Das wird sich wahrscheinlich daran liegen, das irgendetwas an Werte-Typ falsch ist?

Könnt ihr mir weiterhelfen?

Viele Grüße,
Marcus

MaggieMay

Hi,

da sollte doch folgender Ausdruck völlig genügen:
<=Nz([TempVars]![EndDateRO],Datum())
Freundliche Grüße
MaggieMay

Paule

Hallo,

danke erstmal.

Dann ist der Fehler zwar weg, aber die Abfrage funktioniert nicht. Es gibt keine Datensätze, obwohl es sie geben sollte.

Hier ist mal der SQL-Code der Abfrage insgesamt:

SELECT SA_Sales.SalesID, SA_Sales.CustomerID, SA_Customer.CustomerName, CF_InstallmentsT.Notes, CF_InstallmentsT.InstallmentDate, CF_InstallmentsT.InstallmentSum, CF_InstallmentRepayment.RepaymentDate, CF_InstallmentRepayment.RepaymentAmount, IIf([RepaymentAmount]<>[InstallmentSum],[RepaymentAmount]-[InstallmentSum]) AS [Amount Difference], IIf([RepaymentDate] Is Null,IIf(DateDiff('d',[InstallmentDate],Date())>0,DateDiff('d',[InstallmentDate],Date())),IIf(DateDiff('d',[InstallmentDate],[RepaymentDate])>0,DateDiff('d',[InstallmentDate],[RepaymentDate]))) AS TimeDifference, IIf([TimeDifference]>0,[TimeDifference]*100) AS Fines
FROM (SA_Customer INNER JOIN SA_Sales ON SA_Customer.CustomerID = SA_Sales.CustomerID) INNER JOIN (CF_InstallmentsT LEFT JOIN CF_InstallmentRepayment ON CF_InstallmentsT.InstallmentID = CF_InstallmentRepayment.InstallmentNo) ON SA_Sales.SalesID = CF_InstallmentsT.ReferingSale
WHERE (((CF_InstallmentsT.InstallmentDate)>=Nz([TempVars]![StartDateRO],DateValue('1900-01-01')) And (CF_InstallmentsT.InstallmentDate)<=Nz([TempVars]![EndDateRO],(CF_InstallmentsT.InstallmentDate)<Date())) AND ((SA_Sales.Branch) Like [TempVar]![SellingEntityRO] & '*'))
ORDER BY CF_InstallmentsT.InstallmentDate;

DF6GL

Hallo,

sicher, dass dieser Ausdruck gewollt so ist ?

Zitat...<=     Nz([TempVars]![EndDateRO],(CF_InstallmentsT.InstallmentDate)<Date()))    And ...
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

Aaah, das kleiner Zeichen musste weg. Jetzt geht es... :)
Danke für den Hinweis.