gpt4 book ai didi

vba - 使用 IFF 语句将 SQL 查询写入 VBA,出现缺少表达式错误

转载 作者:行者123 更新时间:2023-12-02 20:30:25 25 4
gpt4 key购买 nike

我已经尝试解决这个问题好几天了,但没有任何运气。我正在尝试在 VBA 中编写 SQL 行命令。

我收到“ORA-00936:缺少表达式错误”

strSql4 = "SELECT FWLOTID, ENDDATETIME, ENDCODE, DRAW, IIF([ENDCODE]=""6"", ""MSNAG"",""0"") "    ' Or ENDCODE='10' Or ENDCODE='11' Or ENDCODE='12' Or ENDCODE='14'"

strSql3 = "FROM EVENTS.ODSWIND WHERE ENDDATETIME > to_date('" & Format(dtEndDate, "MM/dd/yyyy") & "','MM/DD/YYYY') "

On Error Resume Next
rsPRC.Close
On Error GoTo ErrorHandler
rsPRC.CursorLocation = adUseClient
rsPRC.CursorType = adOpenStatic
rsPRC.LockType = adLockOptimistic
rsPRC.Open strSql4 & strSql3, cnPRC

最佳答案

检查 [ENDCODE] 的数据类型。如果它是文本字段,请尝试以下操作:

strSql4 = "SELECT FWLOTID, ENDDATETIME, ENDCODE, DRAW, IIF([EVENTS].[ODSWIND].[ENDCODE]=""6"", ""MSNAG"",""0"") as IsItSix "  

如果 [ENDCODE] 是数字,请尝试以下操作:

strSql4 = "SELECT FWLOTID, ENDDATETIME, ENDCODE, DRAW, IIF([EVENTS].[ODSWIND].[ENDCODE]=6, ""MSNAG"",""0"") as IsItSix "  

此外,请告诉我们您将此代码发送到哪个数据库。它是 Access Jet 数据库吗? Access Ace 数据库? SQL Server 数据库?您提供的所有额外信息可以让我们更好地帮助您。

编辑

此外... IIF 仅适用于 Access Sql 查询。

您的错误看起来像 Oracle 错误。

假设您要发送到 Oracle,请尝试以下操作:

strSql4 = "SELECT FWLOTID, ENDDATETIME, ENDCODE, DRAW, CASE WHEN [ENDCODE]= '6' THEN 'MSNAG' ELSE '0' END as IsItSix "  

再次编辑

试试这个:(如果不起作用,请告诉我确切的错误消息。)

strSql4 = "SELECT FWLOTID, ENDDATETIME, ENDCODE, DRAW, CASE ENDCODE WHEN '6' THEN 'MSNAG' ELSE '0' END AS ISITSIX "  

关于vba - 使用 IFF 语句将 SQL 查询写入 VBA,出现缺少表达式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43686357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com