我使用access作为我的数据库,并且无法尝试让我的查询选择正确的数据。目前我的查询似乎返回表中的所有记录,当真正用于WHERE子句中的这个特定值时,它应该只返回1.
我们的想法是使用“请求框”'表基于WHERE子句中的值,并使用这些值从'框中提取数据。表。如果有人能指出我的新手错误,我将不胜感激。我想补充一点,我继承了这个数据库并且无法更改它。非常感谢
我的数据库设置如下。
请求框
请求否
箱
箱
箱
CustRef
sql = "SELECT [Request Boxes].[Request no], [Request Boxes].Box, Boxes.Box, Boxes.CustRef " &
"FROM [Request Boxes], Boxes WHERE [Request Boxes].[Request no] = '" & item & "'"
更新后的代码:
sql = "SELECT [Request Boxes].[Request no], [Request Boxes].Box, Boxes.Box, Boxes.CustRef " &
"FROM [Request Boxes] INNER JOIN Boxes ON [Request Boxes].Box = Boxes.Box " &
"WHERE ((([Request Boxes].[Request no]) = '" & item & "' )" &
"AND ([Request Boxes].[Customer] = '" & customer2 & "') AND (Boxes.Status = '" & status & "'))"
答案 0 :(得分:1)
您将使用FROM
条款加入这两个表...
FROM [Request Boxes], Boxes
这意味着您将获得所有Boxes
行,这些行附加到您正在选择的Request Boxes
行。要选择Boxes
行匹配,请向ON
添加FROM
子句...
FROM [Request Boxes], Boxes ON [Request Boxes].[Box] = [Boxes].[Box]
这将确保只有匹配的Boxes
行附加到[Request Boxes]
行。