Liebes Access-Forum,
ich arbeite erst seit kurzem mit Access 2013, d.h. ich habe nicht wirklich viele Kenntnisse. Ich programmiere auch keine Datenbankabfragen oder die Datenbanken, sondern importiere Excel-Tabellen. Mit Hilfe dieser Tabellen erstelle ich über den "Abfrageentwurf" Abfragen.
Ich habe also eine Abfrage erstellt, die auf zwei Tabellen zugreift. In der ersten Tabelle sind meine Kunden mit Name, Vorname und Adresse. In der zweiten Tabelle – Tabelle2 – sind lediglich die Kunden, die ihre Rechnung bereits bezahlt haben. Nun möchte ich aus beiden Tabellen eine Abfrage erstellen, die:
1. Alle Kunden enthält
2. Ein neues Feld ,,Rechnung bezahlt" enthält, das mir ,,Ja" ausgeben soll, wenn in Tabelle2 ein Wert im Feld ,,Rechnungsdatum" vorhanden ist, ansonsten soll ein ,,Nein" eingetragen werden. Dazu benutze ich die Syntax Rechnung bezahlt: Wenn(IstNull([Rechnungsdatum]);"Nein";"Ja")
Das klappt: Ich erhalte tatsächlich alle Kunden und auch ein neues Feld ,,Rechnung bezahlt" mit den Werten ,,Ja" und ,,Nein".
Wenn ich jedoch diejenigen filtern möchte (über das Pfeil-Symbol in der Feldüberschrift), die nur ,,NEIN" enthalten, erhalte ich die Fehlermeldung ,,Syntaxfehler (fehlender Operator) in Abfrageausdruck ,Rechnung bezahlt'.
Ich bin mir nun nicht sicher, was diese Meldung bedeutet: Ist die Wenn-Dann-Syntax falsch formuliert? Was bedeutet dieser Fehler? Ich habe schon festgestellt, dass ich über den erweiterten Filter nach "Nein" filtern kann, glaube aber, dass es für die Zukunft wichtig ist zu verstehen, warum ich diese Fehlermeldung bekomme.
Ich würde mich über eine kurze Info freuen und auch ggf. Links, die mich weiter in diese Materie einführen.
Danke und viele Grüße
Eliza
Hallo Eliza,
Öffne im Abfrageentwurf mal in die SQL-Ansicht, kopiere den Text und poste ihn
hier.
gruss ekkehard
Hallo,
auf Leer- (und Sonder-) Zeichen in Namen (auch Alias-Namen) sollte dringend verzichtet werden...
Access (bzw. der im Hintergund generierte SQL-String (Abfrage-Filter, Where-Condition) ) interpretiert "Rechnung bezahlt" als zwei durch ein Leerzeichen getrennte Namen, was zu einem Syntaxfehler führt.
Zudem: Warum brauchst Du eine solche Berechnung (in der Abfrage)? Anhand eines fehlenden Datums ist doch ersichtlich, dass keine Zahlung erfolgt ist.....
Hallo DF6GL,
ich habe das Leerzeichen in "Rechnung bezahlt" herausgenommen und siehe da: Keine Fehlermeldung mehr, Filterung funktioniert!
Beaker s.a.: Damit erübrigt sich das Posten des SQL-Ausdrucks, nehme ich an?
Und warum ich das mache: Na, weil ich eine Übersicht haben will, wie viele bezahlt haben, wie viele nicht und zwar in einem Tabellendokument.
Herzlichen Dank!
Eliza
In der Tat (wo immer das auch ist ;))