在datagrid控件中实现两列之积等于另一列的时候,遇到数据库为空的情况,执行错误,帮我看一下代码哪里错了?

潇风逸雨 2004-08-26 10:56:36
Option Explicit
Dim rstemp As ADODB.Recordset

Private Sub Form_Load()
Set rstemp = adotemp.Recordset adodc控件名称adotemp
end sub


Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
With rstemp
If .Fields(7) <> 0 Or .Fields(8) <> 0 Then 光标移动到field(7)表示的列时,提示“实时错误94”,无效使用空
.Fields(9) = Val(.Fields(7)) * Val(.Fields(8))'光标移动到field(7)表示的列时,提示“实时错误94”,无效使用空.错误在此!

End If

End With

End Sub
...全文
80 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
落伍者 2004-08-26
  • 打赏
  • 举报
回复
用isnull判断是否为空
或者用 val(.fields(7) &"")
huangjianyou 2004-08-26
  • 打赏
  • 举报
回复
在With rstemp 之前判断一下,下面就不用做那么多:

if isnull(.Fields(7)) or isnull(.Fields(8)) then exit sub

^_^
online 2004-08-26
  • 打赏
  • 举报
回复
IIf(IsNull(Val(.Fields(7))), 0, Val(.Fields(7)))

1,217

社区成员

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

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