• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 463
  • Last Modified:

Reserved word in SELECT statement

CurrentDb.Execute "SELECT ZONE.CITY as ORIGIN_CITY ZONE.PROVINCE as ORIGIN_PROVINCE ZONE.CPCOMBO, ZONE.[ROUTING TERMINAL], ZONE.TCOMBI, ZONE.[ZONE], ZONE.[MIN], ZONE.[LTL], ZONE.[500], ZONE.[1M], ZONE.[2M], ZONE.[5M], ZONE.[10M], ZONE.[20M] INTO getOriginBeyond FROM [ZONE] WHERE ZONE.CPCOMBO=" & Chr(34) & cpccombo & Chr(34) & " AND ZONE.[ZONE]=" & Chr(34) & "BEYOND" & Chr(34), dbFailOnError

Open in new window


Hi,

I am getting Error3141: The select statement includes a reserved word or an argument name...

I tried breaking my head over 30 mins on this. No clue where there is a reserved word is being used. I already put "[ ]" over reserved words such as "Min" and such.

Any help is much appreciated!

Thanks!
0
Shanan212
Asked:
Shanan212
  • 9
  • 8
2 Solutions
 
datAdrenalineCommented:
ZONE is a reserved word for the ACE/Jet database engine.

http://office.microsoft.com/en-us/access-help/access-2007-reserved-words-and-symbols-HA010030643.aspx

Check out the section titled "Access database engine reserved words"
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:

SELECT ZONE.CITY as ORIGIN_CITY,  ZONE.PROVINCE as ORIGIN_PROVINCE ZONE.CPCOMBO,
  looks like a comma was missing   ^^^
0
 
datAdrenalineCommented:
Just in case you are not using the JET database engine, here is the list for Jet 4.0:
http://support.microsoft.com/kb/321266
0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Amazing also that ZONE is a Reserved Word ... but I doubt that is the problem.


SELECT ZONE.CITY as ORIGIN_CITY, ZONE.PROVINCE as ORIGIN_PROVINCE ZONE.CPCOMBO,
    ZONE.[ROUTING TERMINAL],
    ZONE.TCOMBI,
    ZONE.[ZONE],
    ZONE.[MIN],
    ZONE.[LTL],
    ZONE.[500],
    ZONE.[1M],
    ZONE.[2M],
    ZONE.[5M],
    ZONE.[10M],
    ZONE.[20M]

INTO getOriginBeyond

FROM [ZONE]

WHERE ZONE.CPCOMBO=" & Chr(34) & cpccombo & Chr(34) & "
        AND ZONE.[ZONE]=" & Chr(34) & "BEYOND" & Chr(34),
0
 
datAdrenalineCommented:
Another comment ...

... CurrentDb.Execute can't be used for a SELECT statement.  Use CurrentDb.OpenRecordset
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
>>  INTO getOriginBeyond

Easy to miss ...

mx
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
OP has posted a couple of times already ... and the INTO seems easy to miss ... but it's not a Select query.

mx
0
 
datAdrenalineCommented:
Sorry ... I missed the INTO keyword :-s ... so .Execute is good :) ...

In this case, I would likely alias the ZONE source, and drop the source qualifier for your fields since you don't really need that when you have a singular source.

SELECT CITY as ORIGIN_CITY,
    PROVINCE as ORIGIN_PROVINCE,
    CPCOMBO,
    [ROUTING TERMINAL],
    TCOMBI,
    [ZONE],
    [MIN],
    [LTL],
    [500],
    [1M],
    [2M],
    [5M],
    [10M],
    [20M]

INTO getOriginBeyond

FROM [ZONE] As aZone

WHERE CPCOMBO="somestring"
        AND [ZONE]="BEYOND"

{note: that above is a sample of the resolved SQL statement after the concatenation expression}
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
I'm pretty sure the missing comma is the issue ..

SELECT ZONE.CITY as ORIGIN_CITY   ZONE.PROVINCE as ORIGIN_PROVINCE ZONE.CPCOMBO, ZONE.
no comma here .................................^^
0
 
datAdrenalineCommented:
Mx ... yes I caught the INTO from your second post (36551837) :) ... I failed to scroll horizontally  :-s
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
I HATE the code window for that reason ... No Word Wrap.  Hello !!!!!!

mx
0
 
datAdrenalineCommented:
Mx,

I would think the error would be different if the comma was the issue, maybe 'Missing Operator" or something like that.
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Well ... the missing comma is just before ZONE ... who knows ....?

mx
0
 
Shanan212Author Commented:
It worked. Comma is the problem. I've used this before for different query and it worked fine which is what made me go crazy :/

Thanks all!

Have a great weekend!
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Yeah ... somehow ... the missing comma got wrapped into the ZONE reserved gig ... go figure.

mx
0
 
datAdrenalineCommented:
True ... AND ... I just created a Table object named Zone with a Field named Zone and did a SELECT .. INTO with CurrentDb.Execute {and made no provisions for treating Zone as a reserved word} in the hopes of duplicating the error message ... but nope ... all worked just fine when running from VBA  (A2010/64bit).

.. So .. by adding the comma and treating Zone as a reserved word will hopefully solve the issue for the OP.
0
 
datAdrenalineCommented:
Cool! ... Glad you got it sorted! ... amazing how things manifest themselves!
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
In general, I think the Reserved Word gig is a bit overrated ... at least in SQL ... ie, doesn't seem to cause that many problems per se.

mx
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 9
  • 8
Tackle projects and never again get stuck behind a technical roadblock.
Join Now