Select 并计算 VBA 中的查询 (Access 2010)

Select and count Query in VBA (Access 2010)

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

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

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

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

任何人都可以提出更好的选择。我见过使用子查询的情况,但我不太明白这和我使用的有什么区别。

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

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

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

所以,如果你想用这个 distinct 实现什么,请在你的问题中解释一下,我们可以帮助你。

正如 Sergio 所写,您需要这样的子查询:

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