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

SQL syntax error in VBA

I'm having trouble with a SQL update statement, getting a syntax error.  When I go thru other code in my application, I see similar statements that get no error.  WS-ID is defined as SHORT TEXT in the sysUsers table.

sHostName  is DESK_FOUR


DoCmd.RunSQL ("UPDATE sysUsers SET WS-ID = '" & sHostName & "'")

what am I doing wrong?

Judith
0
JudithARyan
Asked:
JudithARyan
1 Solution
 
Shaun KlineLead Software EngineerCommented:
What error are you getting?
0
 
Eric ShermanAccountant/DeveloperCommented:
Your SQL looks OK ... Something else is wrong.  Tell us exactly what error are you getting.

ET
0
 
NorieData ProcessorCommented:
Judith

Where is sHostName declared and where is it given a value?
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
Eric ShermanAccountant/DeveloperCommented:
Try this ...

DoCmd.RunSQL ("UPDATE sysUsers SET WS_ID = '" & sHostName & "'")

You may have the field name mispelled.  I changed WS-ID to WS_ID.


ET
0
 
PatHartmanCommented:
The dash is an invalid character in a column name.  If you use it, you must enclose the column name in square brackets.
0
 
Eric ShermanAccountant/DeveloperCommented:
Yep, kind of what I was leading up to ... You should never use a dash in field names as Pat mentioned.

ET
0
 
Rey Obrero (Capricorn1)Commented:
you can use a dash but you need to wrap your field name in brackets

DoCmd.RunSQL ("UPDATE sysUsers SET [WS-ID] = '" & sHostName & "'")
0
 
PatHartmanCommented:
Didn't I just say that?
0
 
JudithARyanAuthor Commented:
You're a mind reader.  I changed the table field to WSID and the SQL statement to match.  It worked fine.  Apparently the syntax didn't like the dash/hyphen in a field name.  Is this something new?  I'm converting my application from Access 2003 to Access 2013.

Thanks for your help.

Judith
0
 
QlemoC++ DeveloperCommented:
A dash should never have been allowed in a name. Access is just more strict about this now.

If you have   a-b    in a SQL, it means    a minus b    for sure ;-)
0
 
PatHartmanCommented:
Access allows you to use certain punctuation characters and the space in column names even though technically no programming language would allow the characters due to reasons such as what Qlemo quoted.  However, Access has ALWAYS forced the square brackets syntax for these offending names so converting from 2003 to 2013 isn't what caused the problem.  Newer versions of Access warn you against using certain property and function names as column names but still allow them.  I don't think you get warnings for bad characters except the ones that are simply not allowed such as ! and . and `[ and ]

It is always best to avoid ALL punctuation characters including the space and to also avoid using property names and function names as those will either cause runtime errors or perhaps result in referencing the built in object rather than your user-defined object.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

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