vb循环语句有关问题?请进来看看这段代码那里错了?

vb循环语句问题??请各位高手进来看看这段代码那里错了??
当“字段1”有数据(数字)且“字段2”为空时,则执行循环。
“字段1”中上一条记录减下一条记录,一直到最后一条记录,
得出的结果输出到“字段2”中。

'循环那里好像错了,vb陷入了死循环!
 另外结果也不能输出到“字段2”中!
 请各位高手把正确代码写出来,万分感谢!

Private Sub Command1_Click()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sql As String
Set cn = New ADODB.Connection
cn.Open "provider=microsoft.jet.oledb.4.0;data source=E:\成绩\分数.mdb;"
sql = "select * from 分数表"
Set rs = New ADODB.Recordset
rs.Open sql, cn, adOpenForwardOnly, adLockOptimistic

Dim i As Integer
While Not rs.EOF
  If not rs.Fields("1") = "" And rs.Fields("2") = "" Then
  i = rs.Fields("1") - i
  rs.Fields("2") = i
  End If
  i = rs.Fields("1")
Wend
rs.Update

rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub

------解决方案--------------------
你好像漏了rs.MoveNext语句哦,老是停在那一个记录上了
------解决方案--------------------
切记纪录集的当前纪录需要使用movenext命令来向下移动,初学者常常会忽略
------解决方案--------------------
楼主您这种办法不可取,您把您的“分数表“的字段、内容和想达到什么要求贴上来,帮您研究一下。
您的以上代码有多个问题:
1、当您的分数表内同时有两个或以上的条件满足时UPDATE没法定位,没法执行循环.
2、您的代码少了rs.movefirst和rs.MoveNext
3、While Not rs.EOF一般都和 bof一起使用, (While Not rs.EOF and rs.BOF)