Neuigkeiten:

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

Mobiles Hauptmenü

Was bedeutet "Syntaxfehler (fehlender Operator)"?

Begonnen von Eliza, Dezember 07, 2016, 12:45:00

⏪ vorheriges - nächstes ⏩

Eliza

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


Beaker s.a.

Hallo Eliza,
Öffne im Abfrageentwurf mal in die SQL-Ansicht, kopiere den Text und poste ihn
hier.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

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.....
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

Eliza

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

Beaker s.a.

Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)