在VBA中选择和计算查询(Access 2010)

时间:2015-10-12 13:00:10

标签: ms-access access-vba ms-access-2010

我有一个select查询作为表单中on_click事件的一部分。

varSQL2 = "SELECT DISTINCT(*), count(*) AS Count1" & _
          " FROM Inventory WHERE Part_ID='" & rs!Part_ID & "';"

我想知道这个查询的正确语法是什么。我想要所有与ID匹配的记录,然后计算有多少记录。这种语法是否正确?

可能会发现这是正确的语法,但是,我既没有得到错误也没有得到回应。

任何人都可以提出更好的选择。我已经看过使用子查询的情况,但我并不完全理解它与我使用过的内容之间的区别。

2 个答案:

答案 0 :(得分:2)

正如塞尔吉奥所写,你需要一个像这样的子查询:

SELECT Count(*) AS Count1
FROM (
    SELECT DISTINCT * 
    FROM Inventory 
    WHERE Part_ID = [ rs!Part_ID ] 
)

答案 1 :(得分:1)

要计算有多少记录集使用特定Part_ID:

varSQL2 = "SELECT count(*) AS Count1" & _
          " FROM Inventory WHERE Part_ID='" & rs!Part_ID & "';"

现在使用DISTINCT(*):我不知道目的是什么,因为缺少解释,但它会压缩完全相同的记录集。如果您遵循关系数据库设计的想法(考虑到Access),您将永远不会在一个表中有两个确切的表条目。

所以,如果您希望通过这种方式实现任何目标,请在您的问题中解释,我们可以为您提供帮助。