首页 > 解决方案 > 最后一项使用 RecordSet.FindNext 将结果翻倍

问题描述

RS.FindFirst "[" & Me.CategTxtBx & "]='" & Me.SCSearch & "'"
If Not RS.NoMatch Then
   Call ListData 'displays the data on listbox row after row
End If

Do While Not RS.NoMatch
   RS.FindNext "[" & Me.CategTxtBx & "]='" & Me.SCSearch & "'"
   Call ListData 'display the data on listbox row after row
Loop

以上是我用于提取与用户将输入的类别和关键字匹配的所有数据的代码。它工作正常,但将找到的最后一个数据总是加倍。有人能告诉我为什么吗?我无法分析原因。

我有一个找到匹配的计数器,所以我需要准确的计数。

标签: vbams-access

解决方案


通过在循环中添加另一个 If Not NoMatch 语句来修复它。

RS.FindFirst "[" & Me.CategTxtBx & "]='" & Me.SCSearch & "'"
If Not RS.NoMatch Then
   Call ListData 'displays the data on listbox row after row
End If

Do While Not RS.NoMatch
   RS.FindNext "[" & Me.CategTxtBx & "]='" & Me.SCSearch & "'"
   If Not RS.NoMatch Then
      Call ListData 'display the data on listbox row after row
   End If
Loop

我记得尝试过但没有用,但现在它完美地工作了。


推荐阅读