Foxtable(狐表)用户栏目专家坐堂 → 帮忙看看这个错误提示是什么意思?


  共有11095人关注过本帖树形打印复制链接

主题:帮忙看看这个错误提示是什么意思?

帅哥哟,离线,有人找我吗?
cpayinyuan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
帮忙看看这个错误提示是什么意思?  发帖心情 Post By:2010/5/22 18:14:00 [只看该作者]

如题。

 


图片点击可在新窗口打开查看此主题相关图片如下:列出错提示.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/5/22 21:15:00 [只看该作者]

估计很难,最好贴出相关代码···    多半是列名称有误,或类型不匹配···(遐想)

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/22 22:55:00 [只看该作者]

这是最常见的错误了,楼主作为最早参与测试的用户,还被这种问题困扰是不应该的。

 

例如,在订单表中输入产品名称后,希望能够自动从产品表中取得对应产品的单价,并填入到单价列中,不少用户可能会如下编写代码:

 

1
2
3
4
5
6
7
8
9
10

If e.DataCol.Name = "产品名称" Then '如果内容发生变动的是产品列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是产品列的内容为空
        e.
DataRow("单价") = Nothing '那么清空此行单价列的内容
   
Else
        '否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        Dim
dr As DataRow
        dr = DataTables("产品").Find("[产品名称] = '" & e.NewValue & "'")
        e.DataRow("单价") = dr("单价")
    End
If
End
If

 

上面的代码看上去是没有问题的,但是疏忽了一个问题,就是订单表所输入的产品,可能在产品表中并不存在对应的行,这样第7行代码运行后,变量dr等于空值Nothing,从而导致第8行代码出错。

 

要怎么改,就不用我说了,这只是一个例子,凡是用到查找的地方,都要考虑找不到的情况。

[此贴子已经被作者于2010-5-22 22:56:48编辑过]

 回到顶部