在this article中,它显示了一个比较表,.RecordCount如何比该文章中使用的任何其他方法更快,但它没有提及它是否可以与标准一起使用。
这是我现在的问题。 .recordcount
可以使用标准吗?例如,我只希望recordcount返回我的发票表中的记录数,其中status等于" PAID"。如果有可能,怎么样?
目前我在记录集上使用for loops
来执行此操作,但如果recordcount可以与条件一起使用,那么看到该文章可能会提高性能
提前致谢
答案 0 :(得分:1)
当你的表被链接时,使用任何方法,但DCount非常简单:
PaidInvoiceCount = DCount("*", "InvoiceTable", "[Status] = 'PAID'")
您提供的链接中的方法仅适用于 TableDefs ,速度非常快:
Public Function CountRecords()
Dim lngCount As Long
Debug.Print Timer
lngCount = OpenDatabase("d:\path\test.mdb").OpenRecordset("InvoiceTable").RecordCount
Debug.Print Timer
End Function
您可以修改它以使用记录集:
Public Function CountRecords()
Dim rs As DAO.Recordset
Dim lngCount As Long
Debug.Print Timer
Set rs = OpenDatabase("d:\path\test.mdb").OpenRecordset("Select * From InvoiceTable Where [Status] = 'PAID'", dbOpenSnapshot)
rs.MoveLast
lngCount = rsFilter.RecordCount
Debug.Print Timer
rs.Close
Set rs = Nothing
End Function
然后它的运行速度不会超过DCount。