【问题标题】:How to find a syntax error in my SQL code?如何在我的 SQL 代码中查找语法错误?
【发布时间】:2022-07-08 04:21:26
【问题描述】:

我正在尝试编译我的代码,但每次都会遇到相同的错误:

查询表达式中的语法错误(缺少运算符) ' True Status.Subsystem Not LIKE '''

这是我的代码:

Sub Import_Loop_Check_list()

Dim strSQL As String
Dim SS_sel As String
Dim rcrd As DAO.Recordset

If IsNull(Cobsubsystem) Then
    SS_sel = "True"
   Else
    If IsNull(Logic1) Then
        SS_sel = "Status.Subsystem LIKE '" & Cobsubsystem & "' "
   Else
        SS_sel = "Status.Subsystem NOT LIKE '" & Cobsubsystem & "' "
    End If
End If

strSQL = " SELECT DISTINCT LOOP_JB.Loop_name, [Easyplant Dump query].Subsystem, LOOP_JB.PANEL_FROM, LOOP_JB.ITR_PANEL_FROM, LOOP_JB.ITR_PANEL_FROM_state, LOOP_JB.CABLE_NUM, LOOP_JB.ITR_cable, LOOP_JB.ITR_STATE_Cable, LOOP_JB.Cabinet_JB, LOOP_JB.ITR_Cabinet_JB, LOOP_JB.ITR_STATE_CABINET, Multicors.CABLE_NUM AS Multicore, Multicors.ITR_PANEL_FROM, Multicors.ITR_PANEL_FROM_state, [Cabinet query].PANEL_TO, [Cabinet query].ITR_PANEL_TO, [Cabinet query].ITR_PANEL_TO_state INTO [LOOP_Check] " & _
         " FROM (LOOP_JB INNER JOIN ([Cabinet query] RIGHT JOIN Multicors ON [Cabinet query].CABLE_NUM = Multicors.CABLE_NUM) ON LOOP_JB.Loop_name = Multicors.Loop_name) INNER JOIN [Easyplant Dump query] ON LOOP_JB.Loop_name = [Easyplant Dump query].Clean_Tag_Number" & _
         " WHERE True " & SS_sel & strSQL

DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True

DoCmd.OpenTable "LOOP_Check"

End Sub

【问题讨论】:

标签: sql vba ms-access


【解决方案1】:

我又看了一遍——别的东西没有意义。

您在 WHERE 中引用了 Status.Subsystem,但没有名为 Status 的表 -- 您没有包含完整的查询吗?


原答案

我认为错误信息很清楚——你有一个奇怪的 where 语句

WHERE True Status.Subsystem Not LIKE

你可能是说

WHERE Status.Subsystem Not LIKE

所以改变这一行

     " WHERE True " & SS_sel & strSQL

到这里

     " WHERE " & SS_sel & strSQL

另外,这对我来说不正确——您确定要对 Multicors 进行右连接而不是左连接吗?您希望 multicors 表中每一行的结果中都有一行吗?

【讨论】:

  • 是的,所以我认为右连接是正确的
  • 我正在尝试添加一个组合框来选择我想查看的子系统
  • 但每次我选择一个子系统时它都不起作用,它会显示所有子系统,而不仅仅是我想要的子系统
  • @r_mo -- 将右连接更改为左连接
  • @r_mo -- 见编辑。
猜你喜欢
  • 2021-10-13
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
相关资源
最近更新 更多