以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69946) |
-- 作者:hotday1972 -- 发布时间:2015/6/13 11:09:00 -- [求助] Dim lower As Single = Tables("检验明细").Current("Min")
这段判断,放在datacolchanged, 为什么程序出错中断? |
-- 作者:hotday1972 -- 发布时间:2015/6/13 11:10:00 -- 题目怎么没上去,晕倒! |
-- 作者:狐狸爸爸 -- 发布时间:2015/6/13 11:37:00 -- 1、表事件是有e参数的,在表事件中写代码,应该用e参数来表示触发事件的行和列,不要用Current,当前行并非一定就是触发事件的行: http://www.foxtable.com/help/topics/0604.htm http://www.foxtable.com/help/topics/1591.htm
否则即使现在不出错,以后也会出错。
2、判断空值的正确方法: http://www.foxtable.com/help/topics/1470.htm
3、提问的时候,最好告诉错误提示,以及自己的设计逻辑
最好按顺序系统学习一遍,或者看一下论坛置顶的视频教程。
你这样基本abc没有掌握,胡乱拼凑的东西,必定漏洞百出 [此贴子已经被作者于2015/6/13 11:40:47编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2015/6/13 11:44:00 -- Dim lower As Single = e.DataRow("Min") Dim uper As Single = e.DataRow("Max") Dim m As Single = e.DataRow("测量值") Dim b As Boolean If e.DataCol.Name = "测量值" AndAlso e.DataRow.IsNull("测量值") = False Then If e.DataRow.Isnull("Min") = False Then If e.DataRow.Isnull("max") = False Then b = (m >= lower) And (m <= uper) Else b = (m >= lower) End If Else If e.DataRow.Isnull("max") = False Then b = (m <= uper) End If End If Else e.DataRow("判别") = Nothing End If If b = True Then e.DataRow("判别") = "OK" Else e.DataRow("判别") = "NG" End If [此贴子已经被作者于2015/6/13 11:48:28编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2015/6/13 11:48:00 -- 学到现在,从你的代码可以看出编程逻辑是不错的,但是连事件的e参数都不知道,怎么能写出合格的代码呢? 实在看不下帮助,可以将论坛置顶的视频教程《编程基础》,《基本类型》,《事件编程》,这三个视频是基础来的,对应的三章帮助也是基础。 [此贴子已经被作者于2015/6/13 11:49:12编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2015/6/13 11:58:00 -- 从另一个帖子得知,我还忽视了你没有判断列名的错误,继续改:
Dim lower As Single = e.DataRow("Min")
帮助特别强调: http://www.foxtable.com/help/topics/1522.htm
[此贴子已经被作者于2015/6/13 12:01:10编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2015/6/13 12:00:00 -- 你有编程的逻辑,但是短短一段代码,原则性错误就有如此之多。
你花50%的时间学习,50%的时间开发出合格产品,比你花1%的时间学习,用10000%的时间开发出漏斗百出的产品,要划算很多。 [此贴子已经被作者于2015/6/13 12:05:58编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2015/6/13 12:03:00 -- 论坛没有多少人会像我这这样,耐心给你纠正这些基本的错误,多数只是给你就事论事,让你的代码能凑合跑起来,基本的学习要去啃帮助,否则你开发出10个项目,也还是菜鸟。 |
-- 作者:hotday1972 -- 发布时间:2015/6/13 12:09:00 -- 多谢了,太感谢。我没有大把大把时间连贯学习的,都是零碎时间,学得不到位,见笑了。
我有信心学好。e参数我知道,但怎么用还有些糊涂,太感谢狐爸了 |
-- 作者:hotday1972 -- 发布时间:2015/6/13 12:17:00 -- 以下是引用狐狸爸爸在2015/6/13 11:58:00的发言:
从另一个帖子得知,我还忽视了你没有判断列名的错误,继续改:
Dim lower As Single = e.DataRow("Min")
帮助特别强调: http://www.foxtable.com/help/topics/1522.htm
[此贴子已经被作者于2015/6/13 12:01:10编辑过] 我有判断列名的“If e.DataCol.Name = "测量值" AndAlso m <> Nothing Then” |