MS Access VBA查询。选择后跟结果计数

时间:2015-10-14 09:39:39

标签: sql vba ms-access access-vba

我最近问了一个类似的question。但是,我不认为我知道当时我想要用VBA完成的程度。我正在使用Access 2010并在表单中创建on_click命令。

所以我的目的是创建一个查询,我将采取的方法如下:

varSQL2 = "SELECT * FROM Inventory WHERE Part_ID=" & rs!Part_ID & ";"
Set rs2 = db.OpenRecordset(varSQL2, dbOpenDynaset)
varStock_Level = rs2!Stock_Level +rs!Quantity

rs!quantityrs!Part_ID来自我代码中较早的另一个查询。 stock_levelpart_IDInventory表中的字段。

我现在需要能够创建一个查询来计算由于varSQL2而返回的记录数。所以我可以做一些事情:

varSQL2 = "SELECT * FROM Inventory WHERE Part_ID=" & rs!Part_ID & ";"
Set rs2 = db.OpenRecordset(varSQL2, dbOpenDynaset)
varStock_Level = rs2!Stock_Level +rs!Quantity
    if count >1 then 
      ....[code]....
    end if

我真的不知道从哪里开始,我的自我与子查询有点混淆。我相信我需要2个查询而不是一个。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

有几种方法:

  1. 使用COUNT函数创建查询(类似于您在提到的问题中所做的那样)
  2. 使用您的查询,使用rs2.movelast并使用rs2.RecordCount
  3. 读取计数
  4. 使用域名

    Dim lngRows As Long lngRows = DCount("*", "Inventory", "Part_ID='" & rs!Part_ID & "'")

答案 1 :(得分:0)

来自记忆:

rs.movelast
debug.print rs.recordCount

在使用Movelast之前,您必须始终RecordCount。我的你的表/查询很大,这可能很耗时。