Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage Wenn Feldwert kleiner 0, sonst Wert des Feldes

Begonnen von herb54, August 25, 2024, 18:11:29

⏪ vorheriges - nächstes ⏩

herb54

Hallo,

ich möchte über die Wenn Funktion einen Feldwert abfragen.
Wenn der Feldwert kleiner oder gleich "0" ist soll 0,00€ ausgegeben werden
Ist der Feldwert größer als 0 soll der Wert des Feldes ausgegeben werden

Meine Eingabe bei Kriterien im Feld Abfrage::

Wenn([Abfrage]<=0;"0,00€";[Abfrage])

Die Abfrage führt leider zu keinem Ergebnis.
Irgendwie komme ich da nicht mehr weiter!
Kann mir da jemand helfen?


andyfau

Hallo,

versuche mal:
=Nz([Meinfeld];0)
und formatiere das Feld als Währungsfeld.
So werden Feldinhalte, die NULL oder Leer sind in den Zahlenwert 0 umgewndelt. Oder, wenn ein numerischer Inhalt im Feld steht, wird dieser als Währungsbetrag ausgegeben.
Gruß
Andreas



Beste Grüße
Andreas

MzKlMu

#2
Hallo,
@ Andreas
mit Nz geht das nicht. Das Feld ist ja nicht NULL, sondern enthält eine Zahl <=0.

@ herb54
Deine Beschreibung ist verwirrend. Was ist denn [Abfrage], ist das ein Tabellenfeld ?
Wo hast Du denn diese Formel eingetragen ?
ZitatDie Abfrage führt leider zu keinem Ergebnis.
Welche Abfrage, ich sehe da nix von einer Abfrage.

Das funktioniert aber ohnehin nicht, denn Du willst einer Zahl Text zuweisen. "0,00€" ist Text und keine Zahl.

Wenn dann so:
=Wenn([Abfrage]<0;0;Abfrage)Das = braucht es auch nicht. Formatiert wird dann das Anzeigefeld.

Oder, bitte mal genauer beschreiben.
Gruß Klaus

herb54

Hallo,
vielen Dank! [Abfrage] ist ein Feld einer vorhergehenden Abfrage die als Quelle für eine neue Abfrage dient. Der Wert des Feldes [Abfrage] wird also in der Quellabfrage errechnet. Ich wollte, dass wenn der Wert dieses Feldes [Abfrage] kleiner oder gleich 0 ist dann soll dieses Feld den Wert 0 erhalten. Wenn es größer als 0 ist, soll es den Originalwert ausgeben. Ohne die Wenn Funktion erhalte ich einwandfreie Werte für das Feld. Das ich das Feld [Abfrage] genannt habe ist halt so gesehen doch etwas blöd und verwirrend!

herb54

Hier mal der Original SQL Text:

SELECT qryRechnungTherapiemanuellGutschrift.ID, qryRechnungTherapiemanuellGutschrift.Nachname, qryRechnungTherapiemanuellGutschrift.Vorname, qryRechnungTherapiemanuellGutschrift.Straße, qryRechnungTherapiemanuellGutschrift.Sonstiges, qryRechnungTherapiemanuellGutschrift.PLZ, qryRechnungTherapiemanuellGutschrift.Ort, qryRechnungTherapiemanuellGutschrift.Bezeichnung, qryRechnungTherapiemanuellGutschrift.Preis, qryRechnungTherapiemanuellGutschrift.Rechnungsdatum, qryRechnungTherapiemanuellGutschrift.Rechnungsnummer, qryRechnungTherapiemanuellGutschrift.Rechnung, qryRechnungTherapiemanuellGutschrift.Beschreibung, qryRechnungTherapiemanuellGutschrift.Therapiestunden, qryRechnungTherapiemanuellGutschrift.Akteneinsicht, qryRechnungTherapiemanuellGutschrift.Therstd, qryRechnungTherapiemanuellGutschrift.Kosten, qryRechnungTherapiemanuellGutschrift.Zahlungen, qryRechnungTherapiemanuellGutschrift.GutschriftT, qryRechnungTherapiemanuellGutschrift.Abfrage
FROM qryRechnungTherapiemanuellGutschrift
WHERE (((qryRechnungTherapiemanuellGutschrift.Abfrage)=IIf([Abfrage]<=0,0,[Abfrage])));





MzKlMu

#5
Hallo,
ZitatDer Wert des Feldes [Abfrage] wird also in der Quellabfrage errechnet.
Zeige bitte die Berechnung, denn dort kannst Du bereits ansetzen. Eine weitere Abfrage braucht es da nicht.
Aber grundsätzlich wird das Anzeigeformat über die Formateinstellung in den Feldeinstellungen gemacht und nicht in der Berechnung.
Ich habe die Abfrage mal lesbar formatiert. Die Where Bedingung ist sinnlos, habe ich daher weggelassen.
SELECT ID ,Nachname ,Vorname ,Straße ,Sonstiges ,PLZ ,Ort
    ,Bezeichnung ,Preis ,Rechnungsdatum ,Rechnungsnummer ,Rechnung
    ,Beschreibung ,Therapiestunden ,Akteneinsicht ,Therstd ,Kosten
    ,Zahlungen ,GutschriftT ,Abfrage
FROM qryRechnungTherapiemanuellGutschrift

Gruß Klaus

andyfau

Wenn bereits in der Abfrage mit Nz gearbeitet wird funktioniert das natürlich. Dann werden alle Inhalte, egal ob NULL oder String oder numerisch auf Währungsformat gezogen.

MF: Wert(Nz([Meinfeld];0))
Viele Grüße
Andreas

Sorry, hatte nicht gesehen, dass Werte kleiner 0 auf  0  gesetzt werden sollen. Dann geht natürlich nur eine Bedingungsfunktion.
Beste Grüße
Andreas

herb54

Hier mal die Berechnungsabfrage in SQL:

SELECT ID, Nachname, Vorname, Straße, Sonstiges, PLZ, Ort, Bezeichnung, Preis, Rechnungsdatum, Rechnungsnummer, RechnungBeschreibung, Therapiestunden, Akteneinsicht, GutschriftT, [Therapiestunden]*25 AS Therstd, [Akteneinsicht]+[Therstd] AS Kosten, Zahlungen, [Zahlungen]-[Kosten] AS Abfrage
FROM qryRechnungTherapiemanuell;

MzKlMu

#8
Hallo,
so wird es funktionieren:
SELECT ID, Nachname,Vorname,Straße,Sonstiges
    ,PLZ,Ort,Bezeichnung,Preis,Rechnungsdatum,Rechnungsnummer
    ,RechnungBeschreibung,Therapiestunden,Akteneinsicht,GutschriftT
    ,[Therapiestunden] * 25 AS Therstd
    ,[Akteneinsicht] + [Therstd] AS Kosten
    ,Zahlungen
    ,IIf([Zahlungen] - [Kosten] < 0, 0, [Zahlungen] - [Kosten]) AS Abfrage
FROM qryRechnungTherapiemanuell

Formatiert (Währung) wird im Formular.
Eine 2. Abfrage ist nicht notwendig.
Gruß Klaus

herb54

Super! Das hat einwandfrei geklappt! Ein Feld "RechnungsBeschreibung" musste ich nur in "Beschreibung umändern.
Ich möchte mich vielmals bedanken! Manchmal ist das zum Verzweifeln und man kommt einfach nicht drauf. Ich bin froh, dass es dieses Forum gibt!
Vielen Dank und Grüße
Herbert