You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DAO Recordset中跳过SkipRow字段值为1的行?

问题:遍历直通查询结果时跳过指定行

我需要遍历直通查询返回的所有行。返回结果要么为空,要么包含2行及以上数据,其中有一行的SkipRow列值为1。目标是只遍历所有非可跳过的行。

我尝试了下面的代码,但遇到SkipRow=1的行时,执行rs.MoveNext后循环会继续执行后续处理逻辑,没法直接跳过该行并重新判断下一行。

原代码:

Dim rs As DAO.Recordset

Do While Not rs.EOF  

   intSkipRow = rs("SkipRow")

   If intSkipRow = 1 Then
      rs.MoveNext
   End If
   
   'Do stuff for any real rows

   rs.MoveNext
Loop

解决方案

调整逻辑,先判断当前行是否需要跳过,若是则移动到下一行并直接重启循环判断,避免执行后续处理代码。修正后的代码如下:

Dim rs As DAO.Recordset

Do While Not rs.EOF  
   ' 先检查当前行是否需要跳过
   If rs("SkipRow") = 1 Then
      rs.MoveNext
      Continue Do ' 直接回到循环开头,重新检查是否到记录末尾
   End If
   
   ' 在这里处理非跳过行的业务逻辑
   ' Do stuff for any real rows
   
   ' 处理完成后移动到下一行
   rs.MoveNext
Loop

逻辑说明

  • 遇到SkipRow=1的行时,先移动到下一行,再用Continue Do直接回到循环起始的EOF判断,跳过后续处理步骤
  • 非跳过的行会正常执行处理逻辑,之后再移动到下一行
  • 这样就能保证只有SkipRow≠1的行会被处理

内容的提问来源于stack exchange,提问作者TheMortiestMorty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 05:07:18