【问题标题】:Split Recordset Every 50 Records每 50 条记录拆分记录集
【发布时间】:2017-11-15 06:39:45
【问题描述】:

我知道如何使用 access VBA 来获取记录集中的记录总数。这就是我在下面所做的,但我需要获取我的主要 rs 并将 rs 分成每 50 条记录的子记录集。意思是如果 rs.RecordCount = 200 - 那么我想创建 rs1、rs2、rs3、rs4 并且每个的 recordCount 应该是 50。

如何将记录集动态拆分为如上所述的子记录集?这就是我在主记录集中获得计数的方式

    Set rs = CurrentDb.OpenRecordset("Select firen, daja, globaltwo", dbOpenDynaset)

With rs
   If Not .EOF And Not .BOF Then
      .MoveLast
      .MoveFirst
      Do While Not .EOF
        qty = rst.RecordCount
        Debug.Print qty
      Loop
   End If
End With

rs.Close
Set rs = Nothing

【问题讨论】:

  • MS Access LIMIT X, Y 的可能重复项(您应该限制之前打开记录集,而不是之后)
  • 如果你的表没有主键,就加一个。
  • FWIW 除非您需要在开始迭代记录集之前读取 .Count 属性,否则 .MoveLast/.MoveFirst 组合会令人困惑且无用。去掉它。至于 PK 语法,这看起来像是 SQL Server 可以理解的。我怀疑 Access 使用相同的 alter table / add constraint 语法。
  • 您想对每个 50 个记录集做什么?我无法想象使用完整记录集或完全不同的解决方案无法完成的任务。
  • @Mat'sMug Alter Table/Add constraint(记录在here)非常相似,并且看起来有效,但错误可能是您无法在不先创建字段的情况下添加约束(并且还不如在创建的时候加上)

标签: ms-access vba ms-access-2013 recordset


【解决方案1】:

您可能想查看 OLEDB 提供程序是否支持分页。看到这个https://support.microsoft.com/en-us/help/202125/how-to-page-through-a-recordset-from-asp

建议访问的 Access 97 数据库的给定链接确实支持这一点,即使代码是 Active Server Page,PageSize 属性仍可用于 VBA 客户端。

【讨论】:

    猜你喜欢
    • 2015-06-27
    • 1970-01-01
    • 2023-03-24
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多