求救!!!80040e21错误

brother2605 2006-07-17 05:29:14
小弟在使用recordset.Update时出现错误,百思不得其解,请各位大大帮帮忙啊!!!
With mBodyInfo
Dim lChat As Double
Dim lValue As Double
mBodyInfo.MoveFirst
lChat = 0
For i = 0 To mBodyInfo.RecordCount
lValue = CInt(mBodyInfo!fld1)
lChat = lChat + (mBodyInfo!fld1 - lValue)
If i <> mBodyInfo.RecordCount - 1 Then
mBodyInfo!fld1 = lValue
mBodyInfo!fld2 = lValue * 0.17
Else
mBodyInfo!fld1 = lValue + lChat
mBodyInfo!fld2 = (lValue + lChat) * 0.17
End If
.Update
.MoveNext
Next i
End With

在执行到“mBodyInfo!fld1 = lValue”时出现错误:80040e21 多步操作产生错误,请检查每一步的状态值。
...全文
343 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
brother2605 2006-07-20
  • 打赏
  • 举报
回复
怎么每人回答我啊》
brother2605 2006-07-18
  • 打赏
  • 举报
回复
数据类型是numeric(11,2)程序在执行第一次循环的时候就出错,没有溢出。
我的记录集是多表查询结果集,在单表查询的情况下我测试可以执行,没问题。
chuting1 2006-07-18
  • 打赏
  • 举报
回复
程序溢出,跑飞了
of123 2006-07-18
  • 打赏
  • 举报
回复
字段 fld1 和 fld2 是什么数据类型,能否接受 Double 类型的数据?

解决办法:
1 更改表的设计
2 赋值前做数据类型转换,例如 Cint 或 CLng。
brother2605 2006-07-18
  • 打赏
  • 举报
回复
For i = 0 To mBodyInfo.RecordCount应为For i = 0 To mBodyInfo.RecordCount-1
是我忘写了,我单步执行,数据类型没问题,也能取到mBodyInfo!fld1的值,但是更改
mBodyInfo!fld1的值时就出错。
VirtualDesktop 2006-07-17
  • 打赏
  • 举报
回复
数据指针当前记录是空记录而又要去更新的时候会出现这样的错误

正解
woolnil 2006-07-17
  • 打赏
  • 举报
回复
应该是记录指针超出了。
蔡健常熟 2006-07-17
  • 打赏
  • 举报
回复
严格的说数据指针当前记录是空记录而又要去更新的时候会出现这样的错误。
蔡健常熟 2006-07-17
  • 打赏
  • 举报
回复
数据指针当前记录是空记录会出现这样的错误。
DengXingJie 2006-07-17
  • 打赏
  • 举报
回复
正如楼上所说For i = 0 To mBodyInfo.RecordCount应改为For i = 0 To mBodyInfo.RecordCount-1
不过此错误应该不是由此而引起的
看看你的fld1字段定义类型及长度再看看lValue是否与其匹配
boywang 2006-07-17
  • 打赏
  • 举报
回复
For i = 0 To mBodyInfo.RecordCount

应该是

For i = 0 To mBodyInfo.RecordCount-1

吧吧吧吧!!!!!

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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