Rüdiger Gram wrote:
> ...
> Fehlermeldung bringt:
>
> Die Select-Anweisung schließt ein reserviertes Wort oder
> Argumentnamen ein, das/der falsch, mit falscher Zeichensetzung oder
> überhaupt nicht eingegeben wurde.
>
> Das ist der SQL-String:
>
> strSQL = "SELECT DISTINCT Kandidaten.Datei, Grußkarten.GpID,
> Kandidaten.Mailcode, Kandidaten.[E-Mail] AS eMail" & _
> "FROM Grußkarten INNER JOIN Kandidaten ON Grußkarten.GpID =
> Kandidaten.[Bewerber-Nr] WHERE (((Kandidaten.Mailcode) Like ""*M*"")"
> & _ "AND ((Grußkarten.[FSG versandt]) Not Like ""* &
> [Forms]![Grußkarten]![Dokument] & *""))" & _
> "OR (((Kandidaten.Mailcode) Like ""*M*"") AND ((Grußkarten.[FSG
> versandt]) Is Null)) ORDER BY Kandidaten.Datei"
>
> Derselbe Code - in eine Abfrage umgewandelt - läuft einwandfrei. Wer
> hat das Adlerauge, um zu sehen, wo der Syntaxfehler steckt?
>
> Möglicherweise ist der Teil nicht in Ordnung:
> Not Like ""* & [Forms]![Grußkarten]![Dokument] & *""
Joo, mehrere doppelte Anführungszeichen sind durch einfache
zu ersetzen. Zudem fehlen Leerzeichen vor einigen Schlüsselworten.
Versuch's mal so:
strSQL = _
"SELECT DISTINCT Kandidaten.Datei, Grußkarten.GpID, " & _
"Kandidaten.Mailcode, Kandidaten.[E-Mail] AS eMail " & _
"FROM Grußkarten INNER JOIN Kandidaten " & _
"ON Grußkarten.GpID = Kandidaten.[Bewerber-Nr] " & _
"WHERE (Kandidaten.Mailcode Like '*M*' " & _
"AND Grußkarten.[FSG versandt] Not Like '*" & _
Forms!Grußkarten!Dokument & "*') " & _
"OR (Kandidaten.Mailcode Like '*M*' " & _
"AND Grußkarten.[FSG versandt] Is Null) "
ORDER BY kannst du einsparen. Das erledigt schon DISTINCT.
--
Servus
Karl
*********
Access-FAQ:
http://www.donkarl.com + SNEK
SQL Server und .NET-Entwickler-Konferenz
24./25.03.2012 Nürnberg, 28./29.04.2012 Hannover