首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.Seek测试结果,然后再次使用.Seek

使用.Seek测试结果,然后再次使用.Seek
EN

Stack Overflow用户
提问于 2016-05-03 17:04:49
回答 1查看 529关注 0票数 1

编辑:HansUp的解决方案非常有效,对于将来使用它的人来说,一定要确保在使用多个索引之后删除它们。在我的桌子上,它们几乎是数据库的两倍。我最后使用的一个更好的方法是使用工作区对象创建一个临时db,并预先形成那里的所有处理,只将最终数据带回实际数据库。

希望有办法做到这一点,但我还没有看到任何方法来控制.Seek从哪里开始查找索引(除了使用<来结束时开始)。

我需要比较两个表,以找到薪酬调整的原始记录。问题是,在他们所有伟大的计划中,我们SAP模块的程序员决定从薪资计算的输出中删除唯一的记录标识符,让我来反向设计调整的来源。

我已经能够使用.seek匹配大多数记录,当结果可以追溯到多个记录之一时就会出现问题(为了修复原始代码中的错误,他们被迫执行了数十次校正薪资运行)。

我希望做的是使用一个.seek,测试一个调整变量(已经将记录支付调整为0),如果是的话,.seek再次到索引中的下一个匹配记录。

有办法规定.seek从哪里开始比较索引条目吗?我的后续搜索能在当前匹配之后开始吗?

我知道我可以在最初的.FindNext之后使用.seek,但是希望避免使用.find组的方法,因为它们的特性比较慢。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-03 19:13:24

Recordset.Seek找到第一个与您所寻找的值相匹配的记录(如果有),并将该记录作为当前记录。

没有办法告诉Seek的第二个记录匹配.或者除第一条匹配记录之外的任何记录。

但是,由于您的Recordset是由控制索引(首先需要使用Seek )排序的,所以使用Recordset.MoveNext移到下一个记录,并检查该记录的索引字段是否仍然匹配您的Seek值。

您可以重复MoveNext并检查索引字段,直到该字段的值不再匹配您的Seek值为止。在这一点上,你知道你检查了所有匹配的记录。

如果您基于<<=寻找某种值,这意味着Seek从索引的末尾开始,这几乎是完全相同的交易。只需使用MovePrevious而不是MoveNext

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37010173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档