Grouping and counting rows by existence of matching criteria in any of several columns
SELECT COUNT(a.*) as Total, "Fail" as Status
FROM MyTable as a
WHERE a.Q1 = "NO" or a.Q2 = "NO" or a.Q3 = "NO" or
    a.Q4 = "NO" or a.Q5 = "NO" or a.Q6 = "NO" or a.Q7 = "NO"
GROUP BY "Fail"
UNION ALL
SELECT COUNT(b.*) as Total, "Pass" as Status
FROM MyTable as b
WHERE b.Q1 &lt;&gt; "NO" and b.Q2 &lt;&gt; "NO" and b.Q3 &lt;&gt; "NO" and 
    b.Q4 &lt;&gt; "NO" and b.Q5 &lt;&gt; "NO" and b.Q6 &lt;&gt; "NO" and b.Q7 &lt;&gt; "NO";
GROUP BY "Pass"   


The syntax may have some problems, but I think this will do it for you. If you have lots more columns to add, then it isn't too difficult to write them out once and then copy, paste, and replace in notepad.

You may need to wrap all the column comparisons in a NZ() to protect against null values. Example: WHERE Nz(b.Q1,"") &lt;&gt; "NO"