处理数百万条记录ListView或MsFlexGrid

时间:2017-10-31 13:29:13

标签: listview ms-access activex msflexgrid

我有一种情况需要在Ms Access中处理数百万行 数据来自SQL服务器,在正常情况下,连续形式恰好是正确的,但行是唯一的问题,因为我有多列的表。
所以我开始研究像ListView或MsFlexGrid这样的替代品...让我感到困扰的是我想要一些延迟加载....前1000行加载然后用户向下滚动/向上滚动下一组数据加载。
我已经在一个小型.NET应用程序上使用DGV测试了这个功能,但我没有在Access + ActiveX控件中看到类似的东西,要添加的东西是控件显示有资格检索的总行的必要性。 。例如。 100,000行但只加载1000个... 我还需要这个免费解决方案.. 任何想法......
我担心这种扩展控件的文档很老,我偶然发现了死网...所以一个好的方向会很棒。
最后但并非最不重要......没有必要进行编辑......仅供查看。

1 个答案:

答案 0 :(得分:0)

没有理由拉或让表单滚动超过1000的记录。这样的过程纯粹是对用户的折磨。

您希望用户在表单中滚动超过100万行的原因是什么?我不认为这里需要软件开发人员的技能,这种方法真的需要避免。

解决方案是在填写表格之前简单地询问或获得一些搜索条件。

此表单适用于包含100万行的表格。您输入第一个名称,然后输入姓氏。然后,您只需填写表格即可填写表格。

即使在有大量行的表格上,它也会立即执行。

表单看起来像这个访问示例:

enter image description here

搜索按钮背后的代码如下所示:

Dim strSQL       As String

strSQL = "select * from tblcustomers where LastName like " & Me.LASTNAME & "*'" And _
 "FirstName like " & Me.FIRSTNAME & "*'"

Me.RecordSource = strSQL

上面的表现将近乎即时 - 即使表单基于链接表到sql server。

浮动想法尝试拉取和分页100万行,使得ZERO在Access,.net或任何基于Web的应用程序中都有意义。为了避免对用户施加酷刑,只需添加某种过滤器或搜索条件即可。

作为客户端访问SQL服务器只会根据标准将记录拉到网络管道上 - 整个表不会被拉出,并且不应该被拉,也不应该在这里尝试一些混乱的分页方法。

我还应该指出,上面的示例是一个简单的Access继续表单 - 不需要activeX或网格控件 - 您需要的功能集内置于Access中。