VBA sql字符串错误:缺少运算符

时间:2014-05-12 19:47:32

标签: sql vba

在vba中编写sql字符串并为缺少的运算符获取语法错误。我认为错误是内部连接所以我尝试将它们取出但仍然是同样的错误。

这是查询字符串:

sql1 = "SELECT WorkOrder.ProjectID, tref_dep.department, live_project.project_codename " _
     & "FROM WorkOrder " _
     & "INNER JOIN tlive_project " _
     & "ON tlive_project.project_id = WorkOrder.ProjectID " _
     & "INNER JOIN tref_dep " _
     & "ON tref_dep.dep_id = WorkOrder.ToDepartment " _
     & "WHERE WorkOrder.ToDepartment = " & rs1!wo_depart_id & " AND WorkOrder.ProjectID = " & rs1!proj_id _
     & " CONTAINS(WorkOrder.WorkOrderDescription, 'TimeForce Upload,') " _
     & "LIMIT 1"

我可能错过了一些简单的东西,但非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

您在CONTAINS(..)

之前忘记了逻辑运算符
 & "WHERE WorkOrder.ToDepartment = " & rs1!wo_depart_id & " AND WorkOrder.ProjectID = " & rs1!proj_id _
 & "AND CONTAINS(WorkOrder.WorkOrderDescription, 'TimeForce Upload,') " _
 & "LIMIT 1"

答案 1 :(得分:0)

VBA要求括号为2个或更多JOIN子句。

sql1 = "SELECT WorkOrder.ProjectID, tref_dep.department, live_project.project_codename " _
 & "FROM (WorkOrder " _
 & "INNER JOIN tlive_project " _
 & "ON tlive_project.project_id = WorkOrder.ProjectID) " _
 & "INNER JOIN tref_dep " _
 & "ON tref_dep.dep_id = WorkOrder.ToDepartment " _
 & "WHERE WorkOrder.ToDepartment = " & rs1!wo_depart_id & " AND WorkOrder.ProjectID = " & rs1!proj_id _
 & " CONTAINS(WorkOrder.WorkOrderDescription, 'TimeForce Upload,') " _
 & "LIMIT 1"