See also the other question in this category about SQL "missing operator" or "type mismatch" errors.
The most common cause of this error is probably the use of a SQL or Access (if using Access) keyword as a table name or field name.
Some of the more common reserved words to crop up include: Date Time Desc [as in ORDER BY DESCending] Money But there are also other odd words that you might find happen to be keywords! For example, TimeStamp is a keyword. Yet it doesn't show up in the normal list of Access keywords. Why? Because it is a legal SQL "synonym" for DateTime.
How can you determine if a field or table name might be a keyword and thus causing you problems? Well, the easiest way is simply to enclose the name in [ brackets ] (like that) and try again. If the SQL now works, you have found the problem.
To use Access's HELP to determine if a word might be a keyword, you should use the FIND tab from the HELP (not the INDEX tab) and search for the word in question. Some keywords (TimeStamp was an example) do not show up in the INDEX but do show up with a full FIND of the help info.