PDA

Vollständige Version anzeigen : IIF - Befehl richtig schreiben


Nokia
24.01.2001, 11:56
Hallo

wenn ich den iif - Befehl in einer SQL - Abfrage schreibe, bringt mir Access immer eine Fehlermeldung, dass die Syntax nicht stimmt. Wie muss ich den Befehl richtig eingeben???

Hier ein Beispiel meines Textes:
SELECT "<Alle>" AS GeräteBezeichnung,HardwareBezeichnung FROM Tab_Geräte
WHERE (((Tab_Geräte.HardwareBezeichnung)=[Hardware]))
IIF((([Hardware]='"<Alle>"')),
SELECT DISTINCT [Tab_Geräte].[GeräteBezeichnung],[Tab_Geräte].[HardwareBezeichnung]
FROM Tab_Geräte
WHERE (((Geräte.HardwareBezeichnung)=[Hardware])),
SELECT DISTINCT [Tab_Geräte].[GeräteBezeichnung],[Tab_Geräte].[HardwareBezeichnung]
FROM Tab_Geräte);

Vielen Dank

Sanne
24.01.2001, 12:43
Gibt es einen Unterschied zwischen IIF und IF??
Ich kenne nur den Begriff IF. Vielleicht hängt er sich deshalb auf. Meinst du vielleicht auch IF????
Oder liegt es an dem "". Wenn man alle Felder einer Tabelle ansprechen möchte, dann kenne ich das unter *.
Und wenn das alles so stimmt, dann überprüf doch mal die Klammern. Sicherheitshalber kann man ja alles in [..] und zusätzlich vielleicht noch (...) schreiben. Bei Microsoft weiss man ja nie, woran man ist...

Nockenwelle
24.01.2001, 13:00
Hallo,

zum einen weiss ich nicht, warum du mehr als eine Klammer (zwei hintereinander öffnende und anschließend schließende Klamern) benutzt, aber eigentlich stört sich SQL nicht daran.

Dir fehlen aber noch zwei schließende Klammern. 9 hast du geöffnet und 7 geschlossen.
Hier hast mal ein Beispiel für IIF:

SELECT IIf(Mid([Begleitschein]![Erzeuger_nr],1,1)="E","NRW","nicht NRW") AS Bundesland
FROM [Begleitschein];

IIF(Bedingung,true,false)

Cu

Nokia
24.01.2001, 13:48
Hallo Sanne

Das mit dem IIF sollte eigentlich schon stimmen, ich habe am Anfang auch den IF - Befehl ausprobiert, doch der erkennt SQL nicht. Trotzdem vielen Dank

Nokia
24.01.2001, 13:56
Hallo Nockenwelle

Auch dir vielen Dank für deine Antwort.
Aber wie funktioniert der Befehl, wenn ich zwei Spalten in einer Tabelle vergleichen muss, jedoch dann nur die Werte aus einer Spalte brauche?
SQL reklamiert bei mir immer, dass ich den EXISTS - Befehl nicht verwende (wo soll ich den einbauen?).
Wie du oben sehen kannst, habe ich eine Tabelle 'Tab_Geräte' und zwei Spalten 'GeräteBezeichnung' und 'HardwareBezeichnung', die ich vergleichen muss.
Access soll mir alle Einträge von 'GeräteBezeichnung' auflisten, die mit dem Eingabewert, den ich in ein Kombinationsfeld eingebe (im Formular) mit der Spalte 'HardwareBezeichnung' übereinstimmen.

Vielen Dank