我最近问了一个类似的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!quantity
和rs!Part_ID
来自我代码中较早的另一个查询。 stock_level
和part_ID
是Inventory
表中的字段。
我现在需要能够创建一个查询来计算由于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个查询而不是一个。任何帮助表示赞赏。
答案 0 :(得分:2)
有几种方法:
rs2.movelast
并使用rs2.RecordCount
使用域名
Dim lngRows As Long
lngRows = DCount("*", "Inventory", "Part_ID='" & rs!Part_ID & "'")
答案 1 :(得分:0)
来自记忆:
rs.movelast
debug.print rs.recordCount
在使用Movelast
之前,您必须始终RecordCount
。我的你的表/查询很大,这可能很耗时。