VBA - 基于选择的不需要的列表计数表示更改
Posted
技术标签:
【中文标题】VBA - 基于选择的不需要的列表计数表示更改【英文标题】:VBA - Unwanted Listcount Representation Changes Based On Selection 【发布时间】:2013-07-09 15:54:41 【问题描述】:我正在使用 Access 2003 开发一个应用程序,用户可以在该应用程序中动态生成查询,然后浏览带有 GUI 定义查询结果的列表框。我允许列标题显示结果中哪些算作额外行。
返回的行数受列表框 65535 的物理限制。我还有一个列表框,在文本框中显示 Row X Of Y Selected。
用户每次点击列表框时都会生成消息,事件处理程序中的代码是:
Me!txtRowCount.Value = "Row" & (Me!listDynamicSearchResult.ListIndex + 1) & _ “的” & (Me!listDynamicSearchResult.ListCount - 1) & “已选”
通常代码显示第 X 行,共 65534 行已选择,因为我选择不计算列表框中的标题。随着用户接近最大值,Y 值 65534 变为 65535 并保持在该最大值,直到我重新查询或清除表单。
那么,为什么 listcount 属性直到我接近最大值才显示合适的值?
【问题讨论】:
另外,实际的listcount值从65535变为65536。 【参考方案1】:该行为可能类似于记录集和记录集中计数所发生的情况
Before we get into the examples, you need to understand how RecordCount works.
It does not tell you the number of records in a recordset. Rather, it tells you
the count of records accessed in the Recordset. They may or may not be the same
thing.
来源:http://www.baldyweb.com/RecordCounts.htm
一种解决方法可能是使用DCount
,但我猜在 64k 行上调用可能会很昂贵
【讨论】:
我认为您的解决方案会给出准确的结果,但每次选择的聚合函数似乎都是一场噩梦。归根结底,它只差一分,我只是好奇它为什么这样做。 我没有找到更好的,所以我选择这个作为答案。以上是关于VBA - 基于选择的不需要的列表计数表示更改的主要内容,如果未能解决你的问题,请参考以下文章