【发布时间】:2013-01-12 22:55:28
【问题描述】:
我使用 Access2010 项目 作为前端,将 MS SQL Server 2008 作为后端。在我的 Access 项目中,有一个表单 frmKlientenÜbersicht。此表单有一个视图 abfKlientenÜbersicht 作为数据源。
现在我正在尝试使用以下代码获取当前表单中显示的记录数:
Private Sub Form_Current()
Debug.Print "Form_Current: " & anzahlDatensätze
lblAnzahlDatensätze.Caption = anzahlDatensätze & " Klient(en)"
End Sub
Private Function anzahlDatensätze() As Integer
Dim rs As Recordset
Set rs = Me.RecordsetClone
rs.MoveLast
anzahlDatensätze = rs.RecordCount
End Function
在我使用一些过滤器之前,这可以正常工作。如果我在表单上使用任何过滤器,记录数保持不变!
- 我必须进行哪些更改才能显示当前的记录数(无论是否过滤)?
- 我的代码显示的记录数不正确是什么原因?
编辑:根据给定的 cmets 和答案,我尝试将 Count([pkKlient] 设置到文本框(见新图片)并尝试在 VBA 代码中使用 DCount("*", "abfKlientenÜbersicht", me.Filter)。
不幸的是,当使用它作为 DCount 的参数值时,似乎 filterClause 无效。 (有关 filterClause 的图片,请参见图片)。
如您所见,count(..) 不会产生正确的数字 - 并且 filterClause(由访问生成!!)似乎不适用于 DCount(..)
如果有人想自己尝试,自己创建一个ADP,添加一个表单,添加一个视图,表单数据源是一个视图,设置一个过滤器,然后尝试获取记录数?!!
期待任何 cmets/answers/hints!
【问题讨论】:
-
您也可以向我们展示您的过滤器吗?
-
过滤器将由用户动态设置,通过点击相应的访问 RibbonBarButtons 并选择要过滤的值!
-
抱歉没有明确说明。在这里最好的猜测是您正在查看
paramterized query。那么为什么不在添加过滤器后查看 SQL 视图 :) -
不幸的是,我不太确定您的意思 - 也许您可以添加一个显示/描述如何实施您的解决方案的分析器。此外,我想知道的只是记录的数量 - 底部的导航栏中已经显示了访问权限(例如:4 个中的 1 个 - 已过滤)。 IMO 请求的信息已经在 访问范围内 - 我只是不知道如何获取它??
标签: ms-access vba record-count