MS Access SQL 查询结果

MS Access SQL query results

我有两个表:

rapprovals_tbl

rId rAssignment rState  rApprover   rapprovaldt rType   rNotes
    12345678                    
1   12345679    Paid    12345678    31/05/2015 18:23    Flex    
5   12345679    Approved    12345678    14/05/2015 18:23    Normal  
6   12345679    Pending         Normal  

timerecord_tbl

RowID   Assignment1 wMonth  StartTime   EndTime     
1   12345679    Mar-15  17/03/2015 11:29    18/03/2015 16:12    Flex    
5   12345679    Mar-15  17/03/2015 11:00    17/03/2015 12:00    Normal  
6   12345679    Mar-15  17/03/2015 11:50    18/03/2015 16:11    Normal  

我有两个组合框的表单,它们链接并处理此来源; 方框 1 -

Select [staffid] FROM [control_tbl] WHERE [supervisorid]  = '12345678'

方框 2

SELECT timerecord_tbl.[RowID]
FROM timerecord_tbl
INNER JOIN rapprovals_tbl ON timerecord_tbl.RowID = rapprovals_tbl.rId
WHERE (((timerecord_tbl.[Assignment1])='" & Box 1 & "'
    AND (rapprovals_tbl.[rState] is null ) Or (rapprovals_tbl.[rState] = 'Pending' )));

我只想获取与 Box 2 中的 Box 1 员工记录相关的那些 RowID。

我该怎么做,目前它列出了所有行 ID。

如有任何帮助,我将不胜感激。

尝试更改方框 2 的 SQL,如下所示:

SELECT timerecord_tbl.[RowID]
FROM timerecord_tbl
INNER JOIN rapprovals_tbl ON timerecord_tbl.RowID = rapprovals_tbl.rId
WHERE (timerecord_tbl.[Assignment1]='" & Box 1 & "')
   AND ((rapprovals_tbl.[rState] is null ) Or (rapprovals_tbl.[rState] = 'Pending' )));

我认为@MarcB 也在说同样的话。您的 "OR" 语句被应用于整个 WHERE 子句,而不仅仅是另一个 rState 过滤器。更改括号将正确分隔并修复它。