加入操作语法错误

时间:2013-11-26 20:20:51

标签: sql vba ms-access access-vba

我正在尝试通过按钮进行查询;虽然它说 JOIN操作中的语法错误。当我点击它...我找不到语法错误,也许你们可以帮助我吗?这是代码:

   Set qdef = CurrentDb.CreateQueryDef("UnitMoreInfoQ", _
                                       "SELECT UnitsT.*, WorkOrdersQ.CustomerName, WorkOrdersQ.ClientName, WorkOrdersQ.WorkOrderNumber " & _
                                       "FROM UnitsT inner join workordersQ on WorkOrdersT.WorkOrerID=WorkOrdersQ.WorkOrderID " & _
                                       "WHERE UnitsT.UnitID = " & txtWorkOrderID.Value)

2 个答案:

答案 0 :(得分:6)

问题似乎与您的JOIN条件有关:

WorkOrdersT.WorkOrerID=WorkOrdersQ.WorkOrderID

WorkOrdersT或其他联接中未定义FROM表或表别名,因此您的查询无效。

答案 1 :(得分:1)

让您更轻松地找到并修复SQL错误。

使用字符串变量来保存构造的SQL语句。在使用Debug.Print之前,您可以CreateQueryDef该声明。然后在进行故障排除时,转到立即窗口( Ctrl + g )以检查代码尝试使用的语句。您可以从那里复制它,然后将其粘贴到新查询的SQL视图中以进行进一步测试。如果您需要帮助,请向我们展示已完成的语句文本,而不是构建语句的VBA代码。

Dim strSelect As String
strSelect = "SELECT u.*, w.CustomerName, w.ClientName, w.WorkOrderNumber " & _
    "FROM UnitsT As u inner join workordersQ AS w " & _
    "on u.WorkOrerID=w.WorkOrderID " & _
    "WHERE u.UnitID = " & txtWorkOrderID.Value
Debug.Print strSelect
Set qdef = CurrentDb.CreateQueryDef("UnitMoreInfoQ", strSelect)

或者,使用查询设计器从头开始创建所需的查询。完成后,切换到SQL视图,复制语句文本,修改VBA代码以创建相同的语句。