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
...全文
142 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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语句哦,老是停在那一个记录上了

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧