PDA

Vollständige Version anzeigen : Textausgabe bei Bedingung


madmasculin
20.06.2012, 06:58
Guten Morgen Liebe *,

ich hänge bei einer Textausgabe, welche nur in einem Bereicht (Abfrage zuerst) erscheinen soll, wenn eine bestimmte Bedingung (ja/nein) erfüllt ist.
Je nach ja oder nein, soll ein bestimmter Text ausgegeben werden.

Es sieht wie folgt aus:

Tabelle "T_Daten" enthällt
ID (Autowert und primärschlüssel)
Medikament (Text)
Erhaeltlich (Ja/Nein)
Kommentar bei erhaeltlich (Text)
Kommentar bei nicht erhaeltlich (Text)
anzeigen (Ja/Nein)

nun benötige ich eine Abfrage, die folgendes ausgiebt:

wenn in der Tabelle bei "erhaeltlich" ein JA steht, den Text von "Kommentar bei erhaeltlich" und bei NEIN den Text aus dem Feld "Kommentar bei nicht erhaeltlich"
ABER nur, wenn bei "anzeigen" ebenfalls "JA" ausgewählt wurde.

Wenn mir dazu jmd. eine passende Idee liefern könnte, wäre ich schon mal einen guten Schritt weiter!

Grüße
Uli

Atrus2711
20.06.2012, 08:01
Hi,

in der Frage steckt die halbe Antwort: das Wörtchen wenn kann Access mit der Funktion IIF() abbilden und so deinen Wunsch erfüllen.

Ich deute deinen Wunsch mal so, dass eine Ausgabe - egal welche - überhaupt nur erfolgen soll, wenn Anzeigen auf Ja steht. Dann ginge das so:
SELECT *,
IIF([Anzeigen]=True,
IIF([Erhaeltlich]=True,
[Kommentar bei erhaeltlich],
[Kommentar bei nichterhaeltlich])
,
"") AS Result
FROM T_Daten
oder kürzer
SELECT *,
IIF([Anzeigen],
IIF([Erhaeltlich],
[Kommentar bei erhaeltlich],
[Kommentar bei nichterhaeltlich])
,
"") AS Result
FROM T_Daten

Anne Berg
20.06.2012, 08:27
Hallo,Ich deute deinen Wunsch mal so, dass eine Ausgabe - egal welche - überhaupt nur erfolgen soll, wenn Anzeigen auf Ja steht.das könnte man auch folgendermaßen interpretieren:SELECT ID, Medikament, IIF([Erhaeltlich],
[Kommentar bei erhaeltlich],
[Kommentar bei nichterhaeltlich]) AS Kommentar
FROM T_Daten
Where [Anzeigen] = True

Atrus2711
20.06.2012, 08:30
... was aber die Satzanzahl einschränkt auf die mit Anzeige = Ja... ob das erwünscht ist, weiß nur der Fragesteller.

Ich meinte mit meiner Deutung
Ich deute deinen Wunsch mal so, dass eine Ausgabe - egal welche - überhaupt nur erfolgen soll, wenn Anzeigen auf Ja steht.
die Ausgabe im Kommentarfeld.

madmasculin
24.06.2012, 11:30
Hallo zusammen!

Vielen Dank schon mal für die Antworten! IF... ja, der Ochs vorm Berge...
@Artus2711: genau, es sollte nur angezeigt werden, wenn Anzeigen auf Ja steht.

Ich fummel das mal ein und hoffe, dass es keine Probleme mit der Satzlänge gibt.
Gäbe es denn dafür auch eine Lösung - also längere Sätze - oder muss eine neue Tabelle her? Ist das nicht umsetztbar?

Beste Grüße
Uli
-------------
Okay, habe es eingebaut und nun werden beim Auslösen der Abfrage die beiden Parameterwerte "Kommentar bei erhaeltlich" und "Kommentar bei nicht erhaeltlich" abgefragt... ? Oder anders gesagt: ich habe keinen Schimmer, wie ich das wo einbauen muss!

maikek
24.06.2012, 17:53
Und wo hast du es jetzt eingebaut? In die Abfrage?
Wenn ja, heißen deine Felder in der Tabelle auch "Kommentar bei erhaeltlich" bzw "Kommentar bei nicht erhaeltlich"?
Poste mal die SQL-Syntax deiner Abfrage.
maike

Beaker s.a.
24.06.2012, 22:11
Hallo Martin,
... was aber die Satzanzahl einschränkt auf die mit Anzeige = Ja
Wo ist den der Unterschied zwischen
IIF([Anzeigen]=True, und
Where [Anzeigen] = True ?
gruss ekkehard

Atrus2711
25.06.2012, 08:21
Okay, habe es eingebaut und nun werden beim Auslösen der Abfrage die beiden Parameterwerte "Kommentar bei erhaeltlich" und "Kommentar bei nicht erhaeltlich" abgefragt... ? Oder anders gesagt: ich habe keinen Schimmer, wie ich das wo einbauen muss!

Da diese Feldnamen Leerzeichen enthalten, müssen sie [eckig eingeklammert] werden.

Atrus2711
25.06.2012, 08:24
@beaker:
WHERE begrenzt die Satzanzahl. Sätze, die die bedingugn nicht erfüllen, erscheinen erst gar nicht (weder mit noch ohne Kommentspalten).

IIF ändert an der Satzanzahl nichts, sondern regelt nur das Kommentarergebnis als berechnetes Feld. Sätze, bei denen die Bedingung nicht greift, erscheinen, allerdings mit dem Ergebnis für diesen Fall (dem Leertext "").

madmasculin
25.06.2012, 13:25
Hallo zusammen,

ich habe den Code in die Abfrage eingebaut (siehe Anhang)

und nun bekomme ich erst eine Parameterwertabfrage und dann irgendeine Ausgabe, die nicht ganz so ist, wie erhofft!

Gruß
Uli

maikek
25.06.2012, 13:38
Tabelle: Komentarerhaeltlich
Abfrage: Kommentarerhaeltlich
Wenn du in der Abfrage das Feld genauso ansprichst wie es in der Tabelle heißt, dann klappt es auch.
maike

madmasculin
25.06.2012, 14:36
oh Gott, wie peinlich...

DANKE!

Beaker s.a.
25.06.2012, 21:41
Hallo Martin,
Danke.
Grrr, ich sollte echt um die Uhrzeit keine Fragen
mehr stellen, und schon gar keine, die ich mir
auch selber beantworten könnte.
gruss ekkehard