【问题标题】:Access - Display Count of Records in TextboxAccess - 在文本框中显示记录数
【发布时间】:2021-03-12 13:33:38
【问题描述】:

我有一个访问应用程序。它在搜索表单上打开,用户选择条件,点击“搜索”并显示符合其条件的记录列表。然后,用户单击一条记录,它会显示有关该记录的信息。所有这一切都很好,但我正在尝试添加一个“计数”功能,它将显示一个文本框,显示用户在数据库中的次数。

但我的文本框只显示“1”。

在我的文本框中:我有以下内容:

=Count([Requester_UserName])  

因为请求者可以在数据库中有许多条目,我想显示他们在此表单上的条目数,尽管表单仅显示有关一条特定记录的信息,因此此特定用户可能有 15 个条目.如何让该表单在该文本框中显示“15”?

感谢任何帮助。

【问题讨论】:

  • 我在 Google 上搜索了“访问 - 显示文本框中的记录数”,得到了无数重复的问题 ;)
  • Absinthe:我也是,但我找到的网站都没有。我都试过了,它仍然显示“1”。我永远不明白为什么人们必须粗鲁
  • 我无意冒犯,请不要那样做。你问的是一个非常简单的问题,已经有很多答案了。在 Stack 上,我们尽量避免重复的问题。如果您阅读一些 VBA 教程以更熟悉该语言,也许最好。

标签: vba forms ms-access


【解决方案1】:

不要指望(没有双关语).Count 方法。对于各种场景来说都是不可靠的。请改用 SQL 语句。这是一个多用途的方法:

'------------------------------------------------------------------------------
'Purpose  : Retrieve number of records
'
'Prereq.  : ADO 2.x
'Parameter: cn       - Initialized ADODB.Connection object
'           sTable   - Table name
'           sField   - DB column name used for COUNT. This is ideally a integer column
'           sFilter  - SQL WHERE clause
'Returns  : # of records
'Note     : -
'------------------------------------------------------------------------------
Public Function SQLCount(ByVal cn As ADODB.Connection, ByVal sTable As String, Optional ByVal sField As String = "*", _
   Optional ByVal sFilter As String = vbNullString) As Long
   Dim rs As ADODB.RecordSet
   Dim lRecCount As Long
   Dim sSQL As String
   
   sSQL = "SELECT COUNT([" & sField & _
      "]) AS RecCount FROM [" & sTable & "]"
               
   If Len(sFilter) Then
      sSQL = sSQL & " WHERE " & sFilter
   End If
   sSQL = sSQL & ";"
               
   Set rs = New ADODB.RecordSet
   
   rs.Open sSQL, cn
   
   If Not (rs.BOF And rs.EOF) Then
      lRecCount = rs.Fields("RecCount").Value
   End If
   
   rs.Close
   Set rs = Nothing

   SQLCount = lRecCount
   
End Function
'==============================================================================

假设 ADODB 表名为 MyTable,ID 是该表中的一个整数列,并且您想知道在名为 City 的字段中存储了多少条带有 'Miami' 的记录,您可以这样称呼它

Debug.Print SQLCount(cn, "MyTable", "ID", "City = 'Miami")

【讨论】:

  • 谢谢。这就是我需要做的。我无法让它在表单本身上完成,但需要在后端的代码中完成。感谢您指出这一点,不胜感激。
猜你喜欢
  • 1970-01-01
  • 2016-11-07
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多