求个循环,该怎么处理

求个循环
For iRow = 1 To dcData("Page2").Size
  For iIndex = iRow + 1 To dcData("Page2").Size
  If Val(m_BillInterface.GetFieldValue("FBase1", iRow)) = Val(m_BillInterface.GetFieldValue("FBase1", iIndex)) Then '--如果检测到相同的记录,提示,不允许保存
  MsgBox "单据体第" & iRow & "行和第" & iIndex & "行相同", vbCritical, "错误"

  fc = m_BillInterface.GetFieldValue("FDecimal", iRow)
  fc1 = m_BillInterface.GetFieldValue("FDecimal", iIndex)
  
  Call m_BillInterface.SetFieldValue("FDecimal", fc + fc1, iRow)
  Call m_BillInterface.RemoveRow(True, 2, iIndex)  
  End If
  Next iIndex
Next iRow
 
这个循环应该怎么写啊,一个结果集,如果结果集里物料编码有重复的话,就把物料的数量合并,把重复记录删除,这个循环应该怎么写,那位帮忙看看,谢谢

------解决方案--------------------
利用一个 ListBox (不可见):
Private Declare Function SendMessagebyString Lib _
"user32" Alias "SendMessageA" (ByVal hWND As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As Long

Private Const LB_FINDSTRINGEXACT = &H1A2 '在 ListBox 中精确查找

For iRow = 1 To dcData("Page2").Size
tmp = Val(m_BillInterface.GetFieldValue("FBase1", iRow))
n = SendMessagebyString(List1.hWnd, LB_FINDSTRINGEXACT, -1, tmp)

If n = -1 Then
List1.AddItem tmp
List1.ItemData(List1.NewIndex) = m_BillInterface.GetFieldValue("FDecimal", iRow)
Else
List1.ItemData(n) = List1.ItemData(n) + m_BillInterface.GetFieldValue("FDecimal", iRow)
End If
Next iRow

这样,ListBox 每一条记录的 List 是编码,ItemData 是数量(Long 型)。