vb循环语句问题??请各位高手进来看看这段代码那里错了??

ivy999 2010-04-03 02:35:30
当“字段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
...全文
88 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
abc_2004 2010-04-03
楼主您这种办法不可取,您把您的“分数表“的字段、内容和想达到什么要求贴上来,帮您研究一下。
您的以上代码有多个问题:
1、当您的分数表内同时有两个或以上的条件满足时UPDATE没法定位,没法执行循环.
2、您的代码少了rs.movefirst和rs.MoveNext
3、While Not rs.EOF一般都和 bof一起使用, (While Not rs.EOF and rs.BOF)
回复
ivy999 2010-04-03
加了rs.MoveNext后是可以计算,但数据表会在第一条记录的上面自增一条空白记录。
怎么令它不自增记录呢??
回复
i1u0i1u0 2010-04-03
切记纪录集的当前纪录需要使用movenext命令来向下移动,初学者常常会忽略
回复
bcrun 2010-04-03
你好像漏了rs.MoveNext语句哦,老是停在那一个记录上了
回复
相关推荐
发帖

1187

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2010-04-03 02:35
社区公告
暂无公告