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 ]
)
我有一个 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 ]
)