VBA - 编译错误:属性使用无效

1 ms-access vba

我试图在查询后计算记录集中的元素数量。我正在做这个

Function Test() As Variant
    Dim rst As DAO.Recordset
    rst = CurrentDb.OpenRecordset("SELECT salary_total FROM CompSal")
    rst.MoveLast
    rst.MoveFirst
    Test = rst.RecordCount
End Function
Run Code Online (Sandbox Code Playgroud)

我得到这个编译错误:

非法使用财产

如何使这项工作有效?

Pau*_*cis 5

rst被声明为 Recordset 对象。任何对象在使用之前都需要设置。与变量不同,它们不能被赋值,而是需要被设置。另外,如果可能的话,尝试清理这些物体。所以尝试一下,

Function Test() As Variant
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("SELECT salary_total FROM CompSal")
    rst.MoveLast
    rst.MoveFirst
    Test = rst.RecordCount
    Set rst = Nothing
End Function
Run Code Online (Sandbox Code Playgroud)

但是,您也可以简单地使用 a DCount,其作用完全相同。

Test = DCount("*", "CompSal")
Run Code Online (Sandbox Code Playgroud)

这比创建一个对象、在记录集中移动、所有这些都是为了获得计数要容易得多。