1

RecordsetClone.RecordCount用来显示子表单中的记录数。

问题是,它只计算表单加载时适合子表单边界的那些;您需要向下滚动才能查看的子表单中的任何记录都不会被计算在内。

这是正常的行为RecordsetClone.RecordCount吗?是否有另一种方法可以计算我的子表单中的所有记录,包括底部边框以下的记录?

4

1 回答 1

2

没关系。发现为确保准确RecordCount,您应该MoveLast在执行RecordCount. 下面的上下文和代码给任何有同样问题的人:

上下文

我设计了一个搜索工具,使用主窗体来保存所有搜索过滤器(文本框)和“搜索”命令按钮。搜索结果显示在搜索过滤器下方的子表单上。我想用来RecordCount将搜索中返回的数字结果传递到名为txtResultsNum的主表单上的文本框中。

我正在使用以下代码来实现这一点:

Dim ResultNum As String

ResultNum = Trim(Me.MySubForm.Form.RecordsetClone.RecordCount)

Me.txtResultNum.ControlSource = "=""("" & " & ResultNum & " &"")"""

不幸的是,这(至少对我而言)只会计入在用户必须向下滚动之前可以在子表单中显示的记录数,因此对所有记录的计数不准确。

要获得准确的计数MoveLast,请在执行以下操作之前使用RecordCount

Dim ResultNum As String

Dim rs As Recordset

    Set rs = Me.MySubForm.Form.Recordset

        rs.MoveLast

        ResultNum = rs.RecordCount

        Me.txtResultNum.ControlSource = "=""("" & " & ResultNum & " &"")"""

        rs.MoveFirst

    Set rs = Nothing

注意我MoveFirst最后也用过;这是因为“MoveLast”会自动将焦点移动到子表单中的最后一条记录,这不是我想要的(我希望用户看到第一条记录并向下工作)。

于 2013-11-14T17:31:52.217 回答