【发布时间】:2017-06-04 16:29:13
【问题描述】:
过去,我总是通过查询数据库、将其放到工作表上、排序、读入数组,然后循环创建文档来生成报告。我现在要做的是直接从记录集中生成报告。
我遇到的问题是在使用数组时我有一个绝对记录号,所以我可以检查前一条记录中的字段是否与当前记录中的相同。
使用记录集执行此操作的最佳方法是什么?将字段值存储在变量中?使用嵌套的 While 循环?获取总记录数并使用绝对位置来回移动(这似乎不是一个好主意)?
更新 记录集包含来自 20 家不同公司的多条记录。我按公司名称对查询进行排序,然后开始循环遍历它。然后我需要检查每条记录以查看它是否来自与以前相同的公司,如果不是为该公司创建新工作表。
【问题讨论】:
-
其中一些似乎是合理的方法 - 为什么不尝试一种呢?
-
我觉得这很可能是一个常见的任务,并且有人能够快速回答它。更重要的是,我有兴趣找出最好的方法是什么,这样我就不会得到有效但不应该出于任何原因使用的东西。
-
如果不知道您需要如何构建报告的确切需求,就很难知道最佳方法是什么。如果您只需要跟踪一个或多个特定字段的值何时发生变化,那么使用变量来跟踪以前的值就可以了。
-
我同意 Tim,使用变量来跟踪任何内容,这比在记录集上来回走要好。后者应该是最后的选择。
-
阅读您的更新后,它非常适合 VBA 变量,我们称之为
currentCompany。在 Recorset 的每次迭代中,只需if rs.fields("company") <> currentCompany then ...create new WS