是否可以将RecordCount与Criteria一起使用

时间:2016-03-24 07:39:10

标签: vba ms-access record-count

this article中,它显示了一个比较表,.RecordCount如何比该文章中使用的任何其他方法更快,但它没有提及它是否可以与标准一起使用。

这是我现在的问题。 .recordcount可以使用标准吗?例如,我只希望recordcount返回我的发票表中的记录数,其中status等于" PAID"。如果有可能,怎么样?

目前我在记录集上使用for loops来执行此操作,但如果recordcount可以与条件一起使用,那么看到该文章可能会提高性能

提前致谢

1 个答案:

答案 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。