错误[42000] [Microsoft] [ODBC Excel驱动程序]语法错误(缺少操作员)
尝试使用ODBC驱动程序访问Excel文件作为数据库。并且需要使用以下查询在Excel WB中加入3个表(表1,2,3):
"select [Sheet1$]." + CompanyCode_ColName +
", [Sheet1$]." + CompanyName_ColName +
", [Sheet1$]." + GLAccountNumber_ColName +
", [Sheet1$]." + GLAccountName_ColName +
", [Sheet1$].EndingBalance1, [Sheet2$].EndingBalance2,[Sheet3$].EndingBalance3 " +
"from [Sheet1$] left join [Sheet2$] " +
"on [Sheet1$]." + GLAccountNumber_ColName +
" = [Sheet2$]." + GLAccountNumber_ColName +
" left join [Sheet3$] " +
"on [Sheet3$]." + GLAccountNumber_ColName +
" = [Sheet1$]." + GLAccountNumber_ColName
在加入3表时我会发现此错误,如上所示:
运行查询:错误[42000] [Microsoft] [ODBC Excel驱动程序]语法错误(缺少操作员)在查询表达式'[Sheet1 $]中。glaccnum = [Sheet2 $]。glaccnum placcnum weft [sheet3 $] on [sheet3 $] on [sheet3 $] $]。glaccnum = [Sheet1 $]。glaccnu'。
但是当我只加入2张桌子时,没关系!
谢谢
Trying to access an Excel file as database using ODBC driver. and need to join 3 tables (Sheets1,2,3) in excel WB using following query :
"select [Sheet1$]." + CompanyCode_ColName +
", [Sheet1$]." + CompanyName_ColName +
", [Sheet1$]." + GLAccountNumber_ColName +
", [Sheet1$]." + GLAccountName_ColName +
", [Sheet1$].EndingBalance1, [Sheet2$].EndingBalance2,[Sheet3$].EndingBalance3 " +
"from [Sheet1$] left join [Sheet2$] " +
"on [Sheet1$]." + GLAccountNumber_ColName +
" = [Sheet2$]." + GLAccountNumber_ColName +
" left join [Sheet3$] " +
"on [Sheet3$]." + GLAccountNumber_ColName +
" = [Sheet1$]." + GLAccountNumber_ColName
I get this error when joining the 3 tables as shown above:
Run query: ERROR [42000] [Microsoft][ODBC Excel Driver] Syntax error (missing operator) in query expression '[Sheet1$].GLAccNum = [Sheet2$].GLAccNum left join [Sheet3$] on [Sheet3$].GLAccNum = [Sheet1$].GLAccNu'.
But it's okay when I join just 2 tables!
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在Excel ODBC连接使用的MS Access SQL方言中,多个连接需要括号。希望MS团队会注意我的
因此,在括号中上的之后,将第一个
从join
对包装。还考虑一种替换方法,以使您的SQL可读性。下面用使用表别名并显示了两个括号对,也可以解决您的语法问题。
In the MS Access SQL dialect of which the Excel ODBC connection uses, parentheses are required for more than one join. Hopefully, the MS team heeds my feedback ticket (among other items) to change this frustrating syntax requirement on future versions.
Therefore, wrap the first
FROM-JOIN
pair afterON
in parentheses.Consider also a replace method for readability of your SQL. Below uses table aliases and shows two parentheses pairs which can also resolve your syntax issue.