我正在尝试通过按钮进行查询;虽然它说 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)
答案 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代码以创建相同的语句。