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

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

问题描述:

过去,我一直通过查询数据库,将它放在工作表上,排序,读入数组,然后循环创建文档来生成报告。我现在要做的是直接从记录集生成报告。在VBA中使用ADO Recordset进行条件循环

我虽然这个问题在使用数组我有一个绝对的记录号的时候,所以我可以检查,如果在以前记录的字段是一样的,在目前的战绩是。

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

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

+0

其中一些似乎是合理的方法 - 为什么不试试? –

+0

我觉得这很可能是一种常见的任务,有人可以快速回答它。更重要的是,我有兴趣找出最好的方法是什么,所以我不会最终得到一些有用的东西,但不应该因为任何原因而被使用。 – pheeper

+3

只要您需要构建报告,就很难知道最佳方法是什么,而不知道您的确切需求。如果您只需要跟踪一个或多个特定字段的值何时更改,那么使用变量来跟踪先前的值就可以正常工作。 –

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