希望有一种方法可以做到这一点,但我还没有看到任何方法来控制.Seek
在索引中开始查看的位置(除了使用<从最后开始)。
我需要比较2个表来找到薪酬调整的原始记录。问题是,在他们的所有计划中,SAP模块的程序员决定从薪酬计算的输出中删除唯一的记录标识符,让我进行逆向工程,调整来自哪里。
我能够使用.seek
匹配大多数记录,当结果可以追溯到多个记录中的一个时出现问题(他们被迫进行了数十次纠正性付费运行以修复错误他们的原始代码。)
我希望做的是使用.seek
,测试一个调整变量(已经将记录支付调整为0),如果是,则再次.seek
到下一个匹配记录索引。
有没有办法规定.seek
开始比较索引条目的位置?我的后续搜索可以在当前比赛后开始吗?
我知道我可以在初始.FindNext
之后使用.seek
,但由于其性质较慢,我希望避免.find
组方法。
有什么想法吗?
答案 0 :(得分:2)
Recordset.Seek
找到与您正在寻找的值匹配的第一条记录(如果有的话),并将该记录作为当前记录。
没有办法告诉它Seek
匹配的第二条记录......或第一条匹配记录以外的任何记录。
但是,由于您的Recordset
是由控制索引排序的(首先需要使用Seek
),因此请使用Recordset.MoveNext
移至下一条记录并检查是否该记录的索引字段仍与您的Seek
值匹配。
您可以重复MoveNext
并检查索引字段,直到该字段的值不再与您的Seek
值匹配为止。那时,您知道已经检查了所有匹配的记录。
如果您正在寻找基于<
或<=
的某个值,这意味着Seek
从索引的末尾开始,则几乎完全相同。只需使用MovePrevious
代替MoveNext