在 VBA 中使用 ADO Recordset 进行条件循环

Conditional looping with ADO Recordset in VBA

过去,我总是通过查询数据库生成报告,将其放在工作表上、排序、读入数组,然后循环创建文档。我现在要做的是直接从记录集中生成报告。

我遇到的问题是在使用数组时我有一个绝对记录号,所以我可以检查前一个记录中的字段是否与当前记录中的字段相同。

使用记录集执行此操作的最佳方法是什么?将字段值存储在变量中?使用嵌套的 While 循环?获取总记录数并使用绝对位置来回移动(这似乎不是一个好主意)?

更新 记录集包含来自 20 家不同公司的多条记录。我按公司名称对查询进行排序,然后开始循环遍历它。然后,我需要检查每条记录,看它是否与前一条来自同一家公司,如果不是,则为该公司创建一个新工作表。

我通常使用 "Order By" 子句在查询中进行排序。然后使用变量循环排序记录以跟踪当前排序顺序名称,并通过将当前记录名称字段与变量值进行比较来检测名称更改。